YAML – 块式序列
YAML - 块序列(Block Sequences)
Section titled “YAML - 块序列(Block Sequences)”块序列(Block sequences)是 YAML 中表示列表(lists)或数组(arrays)的最常用方式。其特点是每个条目都以短划线加空格(- )开头,位于新的一行,且序列中的所有条目都共享相同的缩进级别(indentation level)。
块序列条目的基本结构是:
- item_value如果序列是映射(mapping)中的一个值,它会相对于其父键(parent key)进行缩进:
parent_key: - item1 - item2 - another_item: value # 条目可以是复杂的结构示例 1:简单的字符串列表
Section titled “示例 1:简单的字符串列表”一个简单的编程语言列表:
languages: - Python - JavaScript - Ruby - Go这个 YAML 定义了一个键(key)languages,其值是一个包含四个字符串(strings)的序列(sequence)。从概念上讲,它将被解析成类似以下的结构:
{ "languages": [ "Python", "JavaScript", "Ruby", "Go" ]}示例 2:映射(对象)列表
Section titled “示例 2:映射(对象)列表”块序列也可以包含更复杂的条目,例如映射(mapping,即对象 object)。这在表示记录或配置列表时很常见。
users: - name: Alice role: admin id: 101 - name: Bob role: editor id: 102 - name: Charlie role: viewer id: 103在这里,users 是一个序列(sequence),其中每个条目都是一个映射(mapping),包含 name、role 和 id 键(key)。等效的 JSON 结构将是:
{ "users": [ { "name": "Alice", "role": "admin", "id": 101 }, { "name": "Bob", "role": "editor", "id": 102 }, { "name": "Charlie", "role": "viewer", "id": 103 } ]}关于块序列的重要注意事项:
Section titled “关于块序列的重要注意事项:”- **缩进(Indentation):**短划线
-被视为缩进的一部分。同一块序列中的所有条目,其短划线必须对齐在相同的缩进级别上。 - **空白字符(Whitespace):**在短划线之后(
-)需要一个空格,然后才是条目的内容。 - **嵌套结构(Nested Structures):**块序列中的条目本身可以是标量(scalars)、映射(mappings)或其他序列(sequences),从而允许创建深度嵌套的数据结构。
块序列是 YAML 可读性的基础,被广泛用于表示有序的数据集合。