C#与yaml解析
2015-08-15 22:30
537 查看
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。
MuleSoft开源用于设计RESTful APIs的工具RAML Tools
RAML的强大功能
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。
MuleSoft开源用于设计RESTful APIs的工具RAML Tools
RAML的强大功能
相关文章推荐
- 编写高质量代码改善C#程序的157个建议——建议45:为泛型类型参数指定逆变
- 编写高质量代码改善C#程序的157个建议——建议44:理解委托中的协变
- 编写高质量代码改善C#程序的157个建议——建议43:让接口中的泛型参数支持协变
- 关于C# wpf Frame 一次加载多个Page 的问题
- 编写高质量代码改善C#程序的157个建议——建议42:使用泛型参数兼容泛型接口的不可变性
- 编写高质量代码改善C#程序的157个建议——建议41:实现标准的事件模型
- 编写高质量代码改善C#程序的157个建议——建议40:使用event关键字为委托施加保护
- 【C#】TreeView应用
- C# WebService URL重写
- [C#]6.0新特性浅谈
- C# RGB和HSB相互转换
- 编写高质量代码改善C#程序的157个建议——建议39:了解委托的实质
- C#垃圾回收机制详解
- 编写高质量代码改善C#程序的157个建议——建议38:小心闭包中的陷阱
- 编写高质量代码改善C#程序的157个建议——建议37:使用Lambda表达式代替方法和匿名方法
- C# 事件
- C# DataGridView分页显示
- C# 编程音量控制
- C#识别简单的验证码(中)
- C#实现判断一个时间点是否位于给定时间区间的方法