介绍
yaml,YAML Ain’t a Markup Language,YAML不是一种标记语言的递归缩写
是一个可读性高,以数据为中心的语言,与xml、properties相比,配置更加简单
文件后缀
xxx.yml 或 xxx.yaml
语法
树形结构,相同的前缀只需要写一次
- 使用 空格缩进 来表示层级关系,空格数不重要,相同层级左对齐即可。不能用tab
- 使用
key: value,:后面要加一个空格(重要) - 大小写敏感
#表示注释
db:
url: 127.0.0.1
port: 8080
name: root
# pwd: 123456
pwd: root
行内写法(不推荐)
类似json
db: {url: 127.0.0.1,port: 8080,name: root,pwd: root}
字符串
如上面的例子,不需要加双引号、单引号,在yml中,双引号、单引号有特殊意义:
加单引号:将字符串里面的特殊字符原样输出
pwd: '123\n456'会输出为:pwd: 123\n456加双引号 :不会将字符串里面的特殊字符原样输出
pwd: "123\n456"会输出为:pwd: 123换行456
基本数据类型
int
age: 123
length: 0b1010_0111_0100_1010_1110 #二进制表示
float:
pi: 3.14
a: 6.8523015e+5 #可以使用科学计数法
boolean
boy: TRUE #true,True都可以
girl: FALSE #false,False都可以
null
null:
nodeName: 'node'
parent: ~ #使用~表示null
日期时间
日期必须使用ISO 8601格式,即yyyy-MM-dd
date: 2018-02-17
时间使用ISO 8601格式,时间和日期之间使用T连接,最后使用+代表时区
datetime: 2018-02-17T15:02:31+08:00
数组
以 - 开头的行表示构成一个数组:
languages:
- java
- c
- python
数组行内写法(不推荐)
languages: [java,c,python]
三个横线划分多个配置
在一个文件中,可用连续三个横线 --- 区分多个部分
userId: 1
username: "lisi"
password: '123456'
address:
province: 山东
city: "济南 : ss"
hobbyList:
- 游泳
- 跑步
---
userId: 2
username: "lisi2"
password: '123456'
address:
province: 河南
city: "郑州 : ss"
hobbyList:
- 下棋
- 画画
...
三个点 … 表示文件结尾
还有选择性的连续三个点号 ... 用来表示文件结尾。
userId: 2
username: "lisi2"
password: '123456'
address:
province: 河南
city: "郑州 : ss"
hobbyList:
- 下棋
- 画画
...
更多参见:
https://www.runoob.com/w3cnote/yaml-intro.html