文章目录
一、基本语法
- 大小写敏感
- 空格或 TAB 代表下一级(一般约定为使用两个空格)
- '#'表示注释
注意:yaml 的空格个数实际上是无所谓的,但是需要注意的是同级间的空格数一定要一致
二、书写方式
2.1、支持的数据类型
- 对象
- 数组
- 单数据
2.2、普通对象写法
Demo:
username: admin
password: 123456
2.3、List 写法
2.3.1、 List 写法
#写法1 常规写法
list:
- 张三
- 李四
- 王五
#写法2 行内写法
list: [张三,李四,王五]
2.3.2、 List<对象> 写法
#写法1 常规写法
list:
- username: admin1
password: 123456
- username: admin2
password: 123456
- username: admin3
password: 123456
#写法2 数组 JSON 写法
list:
- {username: 123,password: 456}
- {username: 789,password: 784}
#写法3 行内写法
list: [{username: 123,password: 456},{username: 789,password: 784}]
2.3.4、 Map<String,String> 写法
#写法一 常规写法
map:
name: 张三
name2: 李四
name3: 王五
#写法二 行内写法
map: {name: 张三,name2: 李四,name3: 王五}
实际上 map 就相当于对象
2.3.5、 Map<String,Object> 写法
#写法一 常规写法
map:
key1:
username: admin1
password: 123456
key2:
username: admin2
password: 123456
key3:
username: admin3
password: 123456
#写法二 对象行内
map:
key1: {username: admin1,password: 123456}
key2: {username: admin2,password: 123456}
key3: {username: admin3,password: 123456}
#写法三 整个 map 行内
map: {key1: {username: admin1,password: 123456},key2: {username: admin2,password: 123456},key3: {username: admin3,password: 123456}}
三、进阶写法
3.1、锚点和引用
-
&abc 表示为定义一个叫abc的变量
-
<< 表示为合并数据
-
- 表示为引用变量
#定义变量 key2
key2: &key2
username: admin2
password: 123456
#定义变量 key1
key1: &key1
username: admin1
password: 123456
map:
#引用变量 key1、key2
<<: *key1
<<: *key2
key3:
username: admin3
password: 123456
#上面写法等同于
map:
key1:
username: admin1
password: 123456
key2:
username: admin2
password: 123456
key3:
username: admin3
password: 123456