简介
https://yaml.org/
基本语法
缩进时不允许使用 Tab 键,只允许使用空格
缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
标识注释,从这个字符一直到行尾,都会被解释器忽略
Yaml 支持的数据结构
- 对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes)/ 字典(dictionary)
- 数组:一组按次序排列的值,又称为序列(sequence)/ 列表(list)
- 纯量(scalars):单个的、不可再分的值
对象类型:对象的一组键值对,使用冒号结构表示
Yaml 也允许另一种写法,将所有键值对写成一个行内对象
1
| hash: {name: Oliver, age: 24}
|
Yaml 允许存在层级键值对
1 2 3
| major: name: computer name: law
|
数组类型:一组连词线开头的行,构成一个数组
数组也可以采用行内表示法
数组的一个相对复杂的实现方式
1 2 3 4 5 6 7 8 9
| products: - id: 1 name: egg price: 8 - id: 2 name: meat price: 33
|
复合结构:对象和数组可以结合使用,形成复合结构
1 2 3 4 5 6 7 8 9
| sport: - swim - run - basketball
city: haidian: beijing.haidian jinan: shandong.jinan hefei: anhui.hefei
|
纯量:纯量是最基本的、不可再分的值
- 字符串、布尔值、整数、浮点数、Null
- 时间、日期
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
number: 12.30
isSet: true
parent: ~
iso8601: 2001-12-14t21:59:43.10-05:00
date: 1976-07-31
e: !!str 123 f: !!str true
str: 我是字符串
str: '内容: 字符串'
str: 'labor’‘s day'
str: 我是一段 多行 字符串
this: | Foo Bar that: > Foo Bar
s1: | Foo
s2: |+ Foo
s3: |- Foo
|
引用
& 锚点和 * 别名,可以用来引用,& 用来建立锚点,<< 表示合并到当前数据,* 用来引用锚点。
1 2 3 4 5 6 7 8 9 10 11
| defaults: &defaults adapter: postgres host: localhost
development: database: myapp_development <<: *defaults
test: database: myapp_test <<: *defaults
|
相当于
1 2 3 4 5 6 7 8 9 10 11 12 13
| defaults: adapter: postgres host: localhost
development: database: myapp_development adapter: postgres host: localhost
test: database: myapp_test adapter: postgres host: localhost
|
参考链接