基本语法
- 大小写敏感
- 使用缩进表示层级关系
- 缩进不允许使用tab,只允许空格
- 缩进的空格数不重要,只要相同层级的元素左对齐即可
- '#'表示注释
数据类型
- 对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)
- 数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)
- 纯量(scalars):单个的、不可再分的值
对象:
使用冒号代表,格式为key: value。冒号后要有一个空格:
可使用缩进表示层级关系:
yaml中还支持流式(flow)语法表示对象,比如上面例子可写为:
为复杂的对象格式,可以使用问号加一个空格代表一个复杂的key,配合一个冒号加一个空格代表一个value:
意思即对象的属性是一个数组[complexkey1, complexkey2],对应的值也是一个数组 [complexvalue1, complexvalue2]
使用流式语法即为[complexkey1,complexkey2]:[complexvalue1,complexvalue2]
数组:
使用一个短横线加一个空格表示一个数组项:
当然也可以有这样的写法:
可以简单的理解为[[java,LOL]]
一个相对复杂的例子:
意思是companies属性是一个数组,每一个数组元素又是由id、name、price三个属性构成;
使用流式语法表示为:
常量:
yaml中提供了多种常量结构,包括整数、浮点数、字符串、null、日期、布尔值、时间。