YAML 语法规范
YAML的文件后缀为.yml
#格式为key: value,冒号后面要加一个空格
#即表示url属性值;
url: http://www.wolfcode.cn
#可以使用缩进表示层级关系,即表示key.child-key属性的值;
#缩进只能使用空格,不能使用TAB,不要求空格个数
key:
child-key: value
child-key2: value2
#也可以写为
key: {child-key: value, child-key2: value2}
#使用一个短横线加一个空格代表一个数组项
hobby:
- Java
- LOL
# 数组行内表示
animal: ["mango","apple","banana"]
#一个相对复杂的例子
#相当于:companies: [{id: 1,name: company1,price: 200W},{id: 2,name: company2,price: 500W}]
companies:
-
id: 1
name: company1
price: 200W
-
id: 2
name: company2
price: 500W
# 相当于:services:{web:{build:.,links:["db:database"]},db:{image: postgres}}
services:
web:
build: .
links:
- "db:database"
db:
image: postgres
#常量
boolean:
- TRUE #true,True都可以
- FALSE #false,False都可以
float:
- 3.14
- 6.8523015e+5 #可以使用科学计数法
int:
- 123
- 0b1010_0111_0100_1010_1110 #二进制表示
null:
nodeName: 'node'
parent: ~ #使用~表示null
string:
- 哈哈
- 'Hello world' #可以使用双引号或者单引号包裹特殊字符
- newline
newline2 #字符串可以拆成多行,每一行会被转化成一个空格
date:
- 2018-02-17 #日期必须使用ISO 8601格式,即yyyy-MM-dd
datetime:
- 2018-02-17T15:02:31+08:00 #时间使用ISO 8601格式,时间和日期之间使用T连接,最后使用+代表时区
引用
& 锚点和 * 别名,可以用来引用:
defaults: &defaults
adapter: postgres
host: localhost
development:
database: myapp_development
<<: *defaults
相当于:
defaults:
adapter: postgres
host: localhost
development:
database: myapp_development
adapter: postgres
host: localhost
& 用来建立锚点(defaults),<< 表示合并到当前数据,* 用来引用锚点。
- &showell Steve
- Clark
- Brian
- Oren
- *showell
相当于:
[ 'Steve', 'Clark', 'Brian', 'Oren', 'Steve' ]
|、|+、|-、>
|: 代表每一行的末尾都会添加一个换行符\n
|+:文中自动换行 + 文末新增两空行
|-:和|一样,但是最后一行不添加换行符\n
>: 只在最后一行添加换行符\n