文章出處

YAML 官方網站稱 YAML 是"一種所有編程語言可用的友好的數據序列化標準"。YAML Ain't Markup Language,和GNU一樣,YAML是一個遞歸著說"不"的名字。不同的是,GNU對UNIX說不,YAML說不的對象是XML。

YAML不是XML。


為什么不是XML呢?因為:

  • YAML的可讀性好。
  • YAML和腳本語言的交互性好。
  • YAML使用實現語言的數據類型。
  • YAML有一個一致的信息模型。
  • YAML易于實現。

上面5條也就是XML不足的地方。同時,YAML也有XML的下列優點:

  • YAML可以基于流來處理;
  • YAML表達能力強,擴展性好。

總之,YAML試圖用一種比XML更敏捷的方式,來完成XML所完成的任務。更多的內容及規范參見http://www.yaml.org

YamlDotNet ---YAML的C# 實現

YAML已經有了不少實現,詳細的實現列表參見http://www.yaml.org/download.html。列表中并沒有.net的實現, 其實.NET也有 YamlDotNet (http://aaubry.net/pages/yamldotnet.html)是YAML的C#實現。YAML文件格式主要集中于空格縮進的概念,它用于指出數據的層次結構 而不是使用XML嵌套標記或JSON的大括號({})和方括號([]),實際上,它是JSON的一個超集,因此,在使用的時候,你可能需要采用JSON風格的語法來跳出空格流,它的創始人將其形容為 為所有編程語言提供人性化的數據序列化標準 ,以我的經驗來看,其重點是人性化, 這篇文章Human readable and editable config files with YAML (http://blog.codeinside.eu/2015/02/09/yaml-dot-net ) 簡要介紹了YamlDotNet。

YamlDotNet官方網站上以下示例的列表可以幫助您入門。

Deserializing反序列化

YAML 文檔轉換為對象圖。

•Serializing 序列化

將對象轉換為其 YAML 表示形式。

Loading YAML 流

說明如何加載使用表示模型的 YAML。

在反序列化期間 Validating

通過操縱的反序列化器節點列表,很容易將行為添加到反序列化程序。此示例演示當他們被反序列化如何驗證對象。

Deserializing 多個文檔

解釋如何從流中加載多個 YAML 文件。

YAML轉換為 JSON JSON 轉換為YAML ,使用 Json.NET 的 JSON 轉換 YAML 顯示如何將 YAML 文件轉換為 JSON。

 

Creating a custom ConfigurationProvider in ASP.NET Core to parse YAML

MuleSoft開源用于設計RESTful APIs的工具RAML Tools

RAML的強大功能


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()