一、数据结构
- 对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)
- 数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)
- 纯量(scalars):单个的、不可再分的值
二、对象
就是 由冒号连接的键值对
1 | animal : pets |
转为JavaScript就是
1 | { animal : pets } |
Yaml 也允许另一种写法,将所有键值对写成一个行内对象。
1 | hash: { name: Steve, foo: bar } |
转为 JavaScript 如下。
1 | { hash: { name: 'Steve', foo: 'bar' } } |
二、数组
一组连词线开头的行,构成一个数组。
1 | - Cat |
转为 JavaScript 如下。
1 | [ 'Cat', 'Dog', 'Goldfish' ] |
数据结构的子成员是一个数组,则可以在该项下面缩进一个空格。
1 | - |
转为 JavaScript 如下。
1 | [ [ 'Cat', 'Dog', 'Goldfish' ] ] |
数组也可以采用行内表示法。
1 | animal: [Cat, Dog] |
转为 JavaScript 如下。
1 | { animal: [ 'Cat', 'Dog' ] } |
三、混合结构
对象和数组可以结合使用,形成复合结构。
1 | languages: |
转为 JavaScript 如下。
1 | { languages: [ 'Ruby', 'Perl', 'Python' ], |
四、纯量
纯量是最基本的、不可再分的值。以下数据类型都属于 JavaScript 的纯量。
- 字符串
- 布尔值
- 整数
- 浮点数
- Null
- 时间
- 日期
基本都是用对象的形式来表示
number : 12.3
isSet : true
friend : ~ //~代表null
date : 1976-07-31
t: !!str true //强制转换数据类型
五、字符串
最复杂
字符串默认不适用引号,但是如果字符串中有特殊字符就需要加引号,无论单双
单引号之中如果还有单引号,必须连续使用两个单引号转义。
1 | str: 'labor''s day' |
转为 JavaScript 如下。
1 | { str: 'labor\'s day' } |
多行字符串可以使用|
保留换行符,也可以使用``折叠换行。
1 | this: | |
转为 JavaScript 代码如下。
1 | { this: 'Foo\nBar\n', that: 'Foo Bar\n' } |