YAML(YAML Ain't Markup Language)是一种人类可读的数据序列化格式。它通常用于配置文件、数据存储和数据交换等场景。以下是对 YAML 格式的详细介绍:
YAML 支持注释,注释以井号(#)开头。例如:
# This is a comment key: value
YAML 使用缩进表示层级关系,缩进通常使用空格,不建议使用制表符。每个缩进级别通常为两个空格。例如:
parent: child: value
在上面的例子中,“child” 是 “parent” 的子项,通过缩进两个空格来表示层级关系。
YAML 使用键值对来表示数据。键和值之间用冒号分隔,冒号后面跟一个空格,然后是值。例如:
key: value
在上面的例子中,“key”是键,“value”是值。
YAML 使用破折号和空格来表示数组(列表)数据。例如:
fruits: - apple - banana - orange
或
fruits: - apple - banana - orange
在上面的例子中,定了包含三个元素的 fruits 数组。
YAML 可以使用管道符(|)或大于号(>)来表示多行字符串。管道符会保留字符串中的换行和缩进,大于号会将字符串折叠成一行,去除多余的空白字符。例如:
description: | This is a multiline description.
或者
description: > This is a single line description.
普通字符串:直接用引号括起来或不使用引号。例如:“string value” 或 string_value。
多行字符串:如前面介绍的使用管道符或大于号表示。
整数:例如:123。
浮点数:例如:3.14。
真:true、True、on、Yes、y。
假:false、False、off、No、n。
可以用 null、~ 或不写任何值来表示空值。
使用键值对和缩进表示对象。例如:
person: name: John age: 30
用连字符(-)表示列表项:
fruits: - apple - banana - orange
在这个例子中,fruits 是一个包含三个字符串元素的数组。
也可以写成缩进的形式:
fruits: - apple - banana - orange
YAML 数组可以包含不同类型的元素,例如:
mixed: - 1 - "two" - 3.0 - true
这里的 mixed 数组包含了整数、字符串、浮点数和布尔值。
也可以在 YAML 中创建嵌套的数组,例如:
matrix: - [1, 2, 3] - [4, 5, 6] - [7, 8, 9]
这个例子中,matrix 是一个包含三个子数组的数组。
易读性:YAML 的语法简洁明了,易于阅读和理解。它使用缩进和简洁的语法表示数据结构,使得配置文件和数据文件更加直观。
跨语言支持:YAML 可以被多种编程语言解析和生成,因此它非常适合用于数据交换和配置文件。许多编程语言都有 YAML 解析库,可以方便地读取和写入 YAML 格式的数据。
灵活性:YAML 支持多种数据类型,包括对象、数组、字符串、数字、布尔值等。它还支持嵌套结构和引用,可以表示复杂的数据结构。
可扩展性:YAML 可以通过自定义标签和扩展来满足特定的需求。这使得 YAML 可以适应不同的应用场景和数据格式。
总之,YAML 是一种简洁、易读、跨语言支持的数据序列化格式,广泛应用于配置文件、数据存储和数据交换等领域。
一个有效的 YAML 文件,可以参考:https://yaml.org/
YAML 详细语法,可以参考:https://yaml.org/spec/1.2.2/