YAML 语法规范
YAML的文件后缀为.yml
#格式为key: value,冒号后面要加一个空格#即表示url属性值;url: http://www.wolfcode.cn#可以使用缩进表示层级关系,即表示key.child-key属性的值;#缩进只能使用空格,不能使用TAB,不要求空格个数key:child-key: valuechild-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: 1name: company1price: 200W-id: 2name: company2price: 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: ~ #使用~表示nullstring:- 哈哈- 'Hello world' #可以使用双引号或者单引号包裹特殊字符- newlinenewline2 #字符串可以拆成多行,每一行会被转化成一个空格date:- 2018-02-17 #日期必须使用ISO 8601格式,即yyyy-MM-dddatetime:- 2018-02-17T15:02:31+08:00 #时间使用ISO 8601格式,时间和日期之间使用T连接,最后使用+代表时区
引用
& 锚点和 * 别名,可以用来引用:
defaults: &defaultsadapter: postgreshost: localhostdevelopment:database: myapp_development<<: *defaults相当于:defaults:adapter: postgreshost: localhostdevelopment:database: myapp_developmentadapter: postgreshost: localhost
& 用来建立锚点(defaults),<< 表示合并到当前数据,* 用来引用锚点。
- &showell Steve- Clark- Brian- Oren- *showell相当于:[ 'Steve', 'Clark', 'Brian', 'Oren', 'Steve' ]
|、|+、|-、>
|: 代表每一行的末尾都会添加一个换行符\n|+:文中自动换行 + 文末新增两空行|-:和|一样,但是最后一行不添加换行符\n>: 只在最后一行添加换行符\n
