YAML 语法

2025年3月17日 | 阅读 3 分钟

在本节中,我们将学习 YAML 的结构要求。在 YAML 中,文档是键值对的集合,其中值可以像树一样复杂,也可以像字符串一样简单。我们将使用空格而不是制表符来缩进 YAML。缩进在 YAML 文件中起着非常重要的作用。缩进用于将相关的事物组合在一起。在缩进中,字符不会被视为内容信息的一部分。

YAML 中,缩进表示结构。破折号 (-) 用于表示列表,冒号 (:) 用于表示键值对。

示例 1

上面的例子展示了键值映射缩进。它在 datacenter 下有一个缩进。datacenter 下的两个值是 datacenter 映射的一部分。它们彼此关联,因为它们在实际键(即 location 和 cab)之前有两个空格缩进。

示例 2

这显示了一个键值映射。在这里,我们使用冒号表示键值对。键是 host,值是 phl-42。

示例 3

此示例显示了列表缩进。它也有缩进,因为它在 animals 下有一个列表。它包含破折号以表明它是一个列表,而不仅仅是键值。

YAML 字符

  • YAML 旨在支持 Unicode。问题是并非所有 Unicode 都包含在其中。
  • YAML 可以支持 C0/C1 块中的任何内容,这些块称为控制块。这些控制块没有任何实际表示的符号,例如字母“a”或“冒号”。这些是 Unicode 的特殊或结构位,用于显示传输的结束。
  • YAML 中有一些例外,例如它可以支持制表符,只要它们不用于缩进。 YAML 还支持换行符、删除符号和下一行符号。
  • YAML 不支持代理项,它是 16 位 Unicode 字符的组合。
  • YAML 不支持所有类型的编码。它仅支持 UTF-8、UTF-16 和 UTF-32。如果我们想使我们的 YAML 与 JSON 兼容,我们必须使用 UTF-32。

指示符字符

它包含一个特殊的语义。YAML 文档的内容由以下语义描述

序号。Character功能
1:它用于描述映射值。
2-它描述了块序列的条目。
3,它描述了流集合的条目。
4?它用于描述映射键。
5!它描述了节点的标签。
6&它描述了节点的锚点属性。
7|它用于描述文字块标量。
8#它用于描述注释。
9>它用于描述折叠块标量。
10{它用于启动流的映射。
11}它用于结束流的映射。
12[它用于启动流的序列。
13]它用于结束流的序列。
14%它描述了指令的使用。
15*它用于描述别名节点。

下一主题YAML 数据类型