YAML语法
YAML 是一种简洁强大的语言,它的设计目标是便于设计和使用人员阅读。
基本语法规则
- 大小写敏感。
- 使用缩进表示层级关系。
- 缩进时不允许使用Tab键,只允许使用空格。
- 缩进的空格数目不重要,要求相同层级的元素左侧对齐。
- 使用#表示注释。
YAML支持三种数据结构
- 对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes)/ 字典(dictionary)。
- 数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)。
- 纯量(scalars):数据最小的单位, 单个的、不可再分的值。
对象
对象是一组键值对(key: value,冒号后面必须有一个空格或换行),合法的表示方法如下:
也可以将多个键值对写成一个行内对象:
下面这种情况会出错
用引号括起来就没有问题,如下所示
数组
数组使用连字符和空格“- ”表示,合法的表示方法如下:
也可使用行内表示法:
对象和数组可以嵌套使用,形成复合结构:
纯量
纯量的数据类型有字符串、布尔值、整数、浮点数、Null、时间、日期。
- 字符串表示:字符串默认不使用引号表示:
如果字符串之中包含空格或特殊字符,需要放在引号之中:
单引号和双引号都可以使用,两者区别是单引号可以识别转义字符:双引号不会对特殊字符转义:↵
单引号之中如果还有单引号,必须连续使用两个单引号转义。
字符串可以写成多行,从第二行开始,必须有一个单空格缩进。换行符会被转为空格。
- 整数表示:
- 浮点型表示:
- Null表示:
- 时间表示:时间采用ISO8601格式。
- 日期表示:日期采用复合ISO8601格式的年、月、日表示。
一些特殊符号
- “---”表示一个Yaml文件的开始,“...”表示一个Yaml文件的结束。
- 对于整数型、浮点型、布尔型数据用两个感叹号“!!”进行强制转换:
- 多行字符串可以使用“|”保留换行符,也可以使用“>”折叠换行。这两个符号是Yaml中字符串经常使用的符号。
对应的对象为:
注释
YAML支持注释,这是YAML相比JSON的一个优点。
YAML的注释使用“#”开头,如下所示。
参考文档