C#與yaml解析


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的強大功能


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM