目录

背景

给了朋友一个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 都是数据序列化格式,但它们在某些方面有不同的特点:

  1. 人类可读性

    • YAML 文件更易于阅读:YAML 的设计使其更接近自然语言,具有更清晰的结构和缩进。这使得 YAML 文件对人类来说更加友好,特别是在配置文件中添加注释或解释时。
    • JSON 文件较为紧凑:JSON 使用简洁的键值对结构,没有注释,适用于机器处理,但不如 YAML 那样直观。
  2. 数据类型支持

    • YAML 支持更多数据类型:YAML 可以表示更复杂的数据结构,例如嵌套的映射、列表和自定义对象。这使得它在处理复杂数据时更灵活。
    • JSON 仅支持基本数据类型:JSON 只支持字符串、数字、布尔值、数组和对象,不适合表示更复杂的数据。
  3. 引用和锚点

    • YAML 具有引用和锚点功能:您可以在 YAML 文件中使用“锚点”来引用其他项目。这对于处理关系型数据非常有用,类似于数据库中的关联。
    • JSON 没有这种功能:JSON 不支持直接引用其他部分的数据。
  4. 嵌套其他序列化格式

    • YAML 可以嵌套其他序列化格式:您可以在 YAML 文件中嵌套其他格式,例如 JSON 或 XML。这在某些情况下很有用,例如将不同格式的数据组合到一个文件中。
    • JSON 不支持直接嵌套其他格式:JSON 文件中不能直接包含其他序列化格式。

也就是说,JSON 适用于简单的数据传输和机器处理,而 YAML 更适合复杂的数据结构、配置文件和人类可读性。

参考