简介
YAML:全称”Yet Another Markup Language”(仍是一种标记语言)。yaml是以数据中心的标记语言。YAML配置文件的文件后缀是.yml
。
基本语法
- 大小写敏感
- 使用缩进表示层级关系(只允许使用空格,不允许使用tab)
- 相同层级左对齐
- ‘#’表示注释
数据类型
数据类型包括:对象、数组、纯量。
1. 对象
对象:键值对的集合,或称映射。
对象键值对使用冒号结构表示:key: value
.冒号后有一个空格,例如:
1 | key: |
或者用流式语法表示为key:{key1: value1,key2: value2}
2. 数组
yaml以-
开头的行表示构成一个数组。例如A、B、C三个数组:
1 | - A |
多维数组
即在一个数组元素下还是一个数组的数组。例如如下二维数组:
1 | - |
复合结构
复合结构即为较为复杂的数组,由对象和数组结合。如C语言等中的结构体数组。例如:
1 | information: |
即information
数组有两个元素,每个元素由name、age、hight三个元素组成。亦可以按information: [{name: Zhangsan,age: 20,hight: 175},{name: Lisi,age: 21,hight:170}]
表示
3. 纯量
纯量是最基本的、不可再分的值。包括:
- 字符串
字符串默认不用加上单引号或双引号:
双引号””:不会转义字符里的特殊字符,长什么样就输出什么样。
单引号’’:会转义字符串里的特殊字符。
转义:转换成字符所包含的含义。
- 布尔值
- 整数
- 浮点数
- Null
- 时间
- 日期
eg:
1 | String: |
引用
通过联合使用下面三个符号实现引用
&
:建立锚点
*
:引用锚点。
<<:表示合并到当前数据
例如
1
2
3
4
5
6
7
8
9
10
11 defaults:
adapter: postgres
host: localhost
development:
database: myapp_development
<<:
test:
database: myapp_test
<<:
相当于:
1 | defaults: |
特殊符号
---
:表示一个文档的开始,可以用在同一个文件中。亦可用来分割不同内容。如Springboot中的profile定义:1
2
3
4
5
6
7
8
9
10
11
12server:
address: 192.168.1.100
spring:
profiles: development
server:
address: 127.0.0.1
spring:
profiles: production
server:
address: 192.168.1.120