YAML和JSON的关系
JSON的首要设计目标是简单性和通用性。因此,JSON的生成和解析非常简单,但代价是可读性较低。
相反,YAML的首要设计目标是可读性和 序列化。因此,YAML允许可读性极强的文件,但生成和解析起来相较JSON复杂。
因此,YAML可以被视为JSON的超集,提供了更好的可读性和更完整的信息模型。在实践中也是如此。每个JSON文件也是一个有效的YAML文件。如果/需要其他功能,则可以轻松地从JSON迁移到YAML。
目前JSON广泛使用于前后端数据交换;YAML一般用于配置文件定义(可读性),后端系统间元数据、配置数据传输(序列化)。
YAML和XML的关系
YAML主要是一种数据序列化语言。XML(EXtensible Markup Language)设计为与标准通用标记语言(SGML)向后兼容,后者旨在支持结构化文档。
对数据可读性和传输性能要求比较高的话,可以优先选择YAML。
如果侧重于结构化、结构扩展性,可以使用XML。
参考
https://yaml.org/spec/1.2/spec.html#id2759572
https://www.json.org/json-en.html
https://yaml.org/xml