有了json为什么还要有yaml
目录
背景
给了朋友一个yml的配置文件,不在这个行业的,还停留在ini的配置,也问为什么不用json。查资料问Ai,顺手备忘。
yaml与yml关系
YAML 和 YML 是同一个文件格式的不同文件扩展名。YAML 是 “YAML Ain’t Markup Language”(YAML 不是标记语言)的递归缩写,是一种可读性高、用途广泛的数据序列化格式。它与 XML 和 JSON 相似,但具有更简洁的语法,使其更易于阅读和编辑。而 YML 只是 YAML 文件的扩展名缩写¹².
配置文件可以使用 .yml
或 .yaml
作为文件后缀,它们是等效的,没有任何区别。实际上,它们都是 YAML(YAML Ain’t Markup Language)格式的文件,只是文件后缀名称不同而已。
JSON与YAML的区别
有了json为什么还要有yaml?
虽然 JSON 和 YAML 都是数据序列化格式,但它们在某些方面有不同的特点:
-
人类可读性:
- YAML 文件更易于阅读:YAML 的设计使其更接近自然语言,具有更清晰的结构和缩进。这使得 YAML 文件对人类来说更加友好,特别是在配置文件中添加注释或解释时。
- JSON 文件较为紧凑:JSON 使用简洁的键值对结构,没有注释,适用于机器处理,但不如 YAML 那样直观。
-
数据类型支持:
- YAML 支持更多数据类型:YAML 可以表示更复杂的数据结构,例如嵌套的映射、列表和自定义对象。这使得它在处理复杂数据时更灵活。
- JSON 仅支持基本数据类型:JSON 只支持字符串、数字、布尔值、数组和对象,不适合表示更复杂的数据。
-
引用和锚点:
- YAML 具有引用和锚点功能:您可以在 YAML 文件中使用“锚点”来引用其他项目。这对于处理关系型数据非常有用,类似于数据库中的关联。
- JSON 没有这种功能:JSON 不支持直接引用其他部分的数据。
-
嵌套其他序列化格式:
- YAML 可以嵌套其他序列化格式:您可以在 YAML 文件中嵌套其他格式,例如 JSON 或 XML。这在某些情况下很有用,例如将不同格式的数据组合到一个文件中。
- JSON 不支持直接嵌套其他格式:JSON 文件中不能直接包含其他序列化格式。
也就是说,JSON 适用于简单的数据传输和机器处理,而 YAML 更适合复杂的数据结构、配置文件和人类可读性。
参考
- (1) What is the difference between YAML and JSON? - Stack …. https://stackoverflow.com/questions/1726802/what-is-the-difference-between-yaml-and-json.
- (2) JSON vs YAML: Comparing Data Formats for Modern …. https://latenode.com/blog/json-vs-yaml.
- (3) JSON vs YAML: What’s the Difference, and Which One Is …. https://www.snaplogic.com/blog/json-vs-yaml-whats-the-difference-and-which-one-is-right-for-your-enterprise.
- (4) YAML vs. JSON: Definitions, Pros & Cons | Built In. https://builtin.com/software-engineering-perspectives/yaml-vs-json.
- (5) When to use YAML instead of JSON - Stack Overflow. https://stackoverflow.com/questions/18395623/when-to-use-yaml-instead-of-json.
- yml和yaml有什么区别 - CSDN文库. https://wenku.csdn.net/answer/28dbca7749fc40c494dde916d6de966d.
- yml 和 yaml 文件的区别 - Ashe|||^_^ - 博客园. https://bing.com/search?q=yml%e6%96%87%e4%bb%b6%e5%92%8cyaml%e6%a0%bc%e5%bc%8f%e7%9a%84%e5%85%b3%e7%b3%bb%e4%b8%8e%e5%8c%ba%e5%88%ab.
- springboot中的配置文件以yml和yaml文件后缀结尾有什么区别 …. https://blog.csdn.net/weixin_50503886/article/details/131500142.
- 一文看懂 YAML - 知乎. https://zhuanlan.zhihu.com/p/145173920.
- yml 和 yaml 文件的区别 - Ashe|||^_^ - 博客园. https://www.cnblogs.com/ashet/p/17744023.html.