YAML基本语法
1、YAML基本介绍
YAML是 YAML Ain’t Markup Language(中文意思:YAML不是一种标记语言)的缩写,YAML 是一种简洁的非标记语言,文件名后缀为yml,java中经常用它描述配置文件application.yml。YAML以数据为中心,比json/xml等更适合做配置文件。使用空白,缩进,分行组织数据,从而使得表示更加简洁易读。
2、yaml基本语法
2.1、yaml语法基本规则
YAML有以下基本规则:
- 大小写敏感
- 使用缩进表示层级关系,只要是左边对齐的一列数据都是同一个层级的
- 数据值前边必须有空格,作为分隔符,否则无法识别该字段值为一个属性(比如 port: 8082,8082前边必须最少有一个空格,可以有多个)
- 禁止使用tab缩进,只能使用空格键
- 字符串可以用也可以不用引号引起来
- 缩进长度没有限制,只要元素对齐就表示这些元素属于一个层级。
- 使用 # 表示注释
2.2、常量的写法
语法结构 :key:空格 value (注意,空格不能去掉,否则无法正确识别)。
yaml 以空格的缩进来控制层级关系,只要是左对齐的一列数据,都是同一个层级的
server:
port: 8081
字面量直接写在后面就可以 , 字符串默认不用加上双引号或者单引号。
注意:
-
"xxx" 双引号可以识别转义字符, 特殊字符会作为本身想表示的意思。比如 :name: "kuang \n shen",使用该属性值时,输出会得到结果:kuang 换行 shen
-
'xxx' 单引号会忽略转义字符 , 特殊字符最终会原样输出。比如 :name: 'kuang \n shen',使用该属性值时,输出会得到结果:kuang \n shen
在同一个 yml 文件里,不能有多个相同对象,同一个对象里不能有多个相同的属性
2.3、对象(Map)的写法
在下一行来写对象的属性和值的关系,注意缩进。
#对象、Map格式 k: v1: v2: #示例: student: name: qinjiang age: 3
也可以使用行内写法,如下:
student: {name: qinjiang,age: 3}
2.4、数组的写法
用 - 值 来表示数组中的一个元素。
pets: - cat - dog - pig #行内写法如下: pets: [cat,dog,pig]
2.5、参数的引用
在 yml 中可以直接引用文件内其他地方出现的属性值,如下:
name: lisi
person:
name: ${name} # 引用上边定义的name值