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官方網站上以下示例的列表可以幫助您入門。
YAML 文檔轉換為對象圖。
將對象轉換為其 YAML 表示形式。
說明如何加載使用表示模型的 YAML。
通過操縱的反序列化器節點列表,很容易將行為添加到反序列化程序。此示例演示當他們被反序列化如何驗證對象。
解釋如何從流中加載多個 YAML 文件。
• YAML轉換為 JSON 和JSON 轉換為YAML ,使用 Json.NET 的 JSON 轉換 YAML 顯示如何將 YAML 文件轉換為 JSON。
Creating a custom ConfigurationProvider in ASP.NET Core to parse YAML
文章列表