YAML/YML语法
基本语法
1、大小写敏感
2、使用缩进标识层级关系
3、缩进不允许tab键,只允许用空格。
4、缩进的空格数不重要,只要相同层级的空格数一样就可以(即左对齐)。
5、使用 # 进行注释。
数据类型
1、对象:键值对的集合,又称为映射(mapping)/哈希(hashes)/字典(dicionary)
2、数据:一组按章次序排列的值,又称为序列(sequence)/(list)
3、纯数(scalars):单个的,不可以再分的值
yaml对象
写法1对象键值对应使用冒号结构标识(key:value),冒号后面再加一个空格。
key: value
如果不加空格会被当成是字符串。如下图:
如果加了空格,就是正常的key-value方式。如下图:
写法2
key: {key1: value1, key2: value2}
写法3 使用缩进标识层级关系
复杂格式
?
-key1
-key2
:
-value1
-value2
这是一个数组[ key1, key2 ]对应的值是[ value1, value2 ],如下图:
yaml数组
以-开头的行表示这是一个数组(注意-后面要加一个空格):
- A
- B
- C
YMAL支持多维数组(注意右图中的中括号和花括号):
key: [ value1, value2, value3 ]
数据结构的子成员结构
-
- A
- B
- C
复杂格式(注意右图中的中括号和花括号):
key:
-
id: 1
name: zhangsan
-
id: 2
name: lisi
复杂的流式写法:
key: [{id: 1, name: zhangsan}, {id: 2, name: lisi}]
yaml纯量
纯量是最基本的,不可再分割的值,包括:字符串,布尔值,证书,浮点数,null,时间,日期
用“&”来建立一个锚点,用“<<: *锚点”来使用一个锚点,有点像是编程中的继承:
database1: &defaults
port: 3306
user: root
password: 123456
database2:
port: 3307
<<: *defaults
database3:
password: pass
<<: *defaults


