YAML 的意思其实是:"Yet Another Markup Language"(仍是一种标记语言)。YAML 的语法和其他高级语言类似,并且可以简单表达清单、散列表,标量等数据形态。它使用空白符号缩进和大量依赖外观的特色,特别适合用来表达或编辑数据结构、各种配置文件、倾印调试内容、文件大纲(例如:许多电子邮件标题格式和YAML非常接近)。YAML 的配置文件后缀为 .yml,如:runoob.yml
。
基础语法
YAML
通常用来配置文件的编辑,可以近似的看成 map 的映射关系。
- 元素 : 关键字大小写敏感,分成类 { k e y 1 : v a l u e 1 , k e y 2 : v a l u e 2 } \{ key1: value1 , key2: value2\} {key1:value1,key2:value2},数组,元组 [ ′ R u b y ′ , ′ P e r l ′ , ′ P y t h o n ′ ] [ 'Ruby', 'Perl', 'Python'] [′Ruby′,′Perl′,′Python′],纯量(字符串,布尔值,整数,浮点数,NULL,时间,日期)。
- 层级关系 : 使用缩进关系表示层级关系,缩进的空格数不重要,只要相同的层级的元素左对齐即可
- '#'表示注释
映射关系 :
- 对象键值对使用冒号结构表示 key: value,冒号后面要加一个空格,也可以使用 key:{key1: value1, key2: value2, ...}。还可以使用缩进表示层级关系;
- 较为复杂的对象格式,可以使用问号加一个空格代表一个复杂的 key,配合一个冒号加一个空格代表一个 value:
第一种对象举例
yaml
key:
child-key: value
child-key2: value2
第二种对象举例
yaml
?
- complexkey1
- complexkey2
:
- complexvalue1
- complexvalue2
详细解释
- 数组的构建
以 - 开头的行表示构成一个数组:
- A
- B
- C
一个相对复杂的例子:
yaml
companies:
-
id: 1
name: company1
price: 200W
-
id: 2
name: company2
price: 500W
- 日期采用复合 iso8601 格式的年、月、日表示。
javascript
date: 1976-07-31
- 可以空行在写入内容。
- 参考文档