YAML 入门教程
YAML 入门教程
YAML语言后缀 .yml
- 基本语法:
* 大小写敏感
* 使用缩进表示层级关系
* 缩进的空格数不重要只要相同层级的元素左对齐即可
* '#'表示注释
2. 数据类型
YAML支持以下几种数据类型:
* 对象:键值对的集合,又称为映射(mapping)/哈希(hashes)/字典(dictionary)
* 数组:一组按次序排列的值,又称为序列(sequence)/列表(list)
* 纯量(scalars):单个的、不可再分的值
- YAML 对象
对象键值对使用冒号结构表示 key: value,冒号后加一个空格
也可以 key:{key1:value1,key2:value2,...}
还可以使用缩进表示层级关系:
key:
child-key: value
child-key2: value2
复杂的对象格式,可以使用问号加一个空格代表一个复杂的key,配合一个冒号加一个空格表示value:
?
- complexkey1
- complexkey2
:
-complexvalue1
-complexvalue2
即:对象的属性是一个数组[complexkey1,complexkey2],对应值也是一个数组[complexvalue1,complexvalue2]
- YAML 数组
以-开头的行表示构成一个数组:
- A
- B
- C
YAML 支持多维数组,可以使用行内表示: key: [value1, value2, ...]
数据结构的子成员是一个数组,则可以在该项下面缩进一个空格
-
-A
-B
-C
- 复合结构
language:
- Ruby
- Perl
- Python
websites:
YAML: yaml.org
Ruby: ruby-lang.org
Python: python.org
Perl: use.perl.org
即: {language:['Ruby','Perl','Python'], websites:{YAML: 'yaml.org', Ruby:'ruby-lang.org', Python: 'python.org', Perl: 'use.perl.org'}}
- 纯量
纯量是最基本的,不可再分的值,包括:
* 字符串
* 布尔值
* 整数
* 浮点数
* Null
* 时间
* 日期
- 引用
& 锚点和 * 别名,可以用来引用
defaults:
adapter: postgres
host: localhost
development:
database: myapp_development
adapter: postgres
host: localhost
test:
database: myapp_test
adapter: postgres
host: localhost
& 用来建立锚点(defaults), << 表示合并到当前数据,*用来引用锚点
- &showell Steve
- Clark
- Brian
- Oren
- *shwell
即 ['Steve','Clark','Brian','Oren','Steve']

浙公网安备 33010602011771号