YAML 格式介绍

最近更新时间:2019-08-27 16:26:20

YAML 专门用来写配置文件的语言。

语法规则

YAML 的基本语法规则如下:

  • 大小写敏感。
  • 使用缩进表示层级关系。
  • 缩进时不允许使用 Tab 键,只允许使用空格。
  • 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可。

数据结构

YAML 支持三种数据结构:对象、数组和纯量。

  • 对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)
  • 数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)
  • 纯量(scalars):单个的、不可再分的值

对象

简单对象

foo: whatever
bar: stuff

复杂对象

foo: whatever 
bar: 
 - 
   fruit: apple 
   name: steve 
   sport: baseball 
 - more 
 - 
   python: rocks 
   perl: papers 
   ruby: scissorses 

转换为 javascript 代码后

{ foo: 'whatever',
  bar: 
   [ { fruit: 'apple', name: 'steve', sport: 'baseball' },
     'more',
     { python: 'rocks', perl: 'papers', ruby: 'scissorses' } ] }

数组

- Cat
- Dog
- Goldfish

纯量

纯量是最基本的、不可再分的值。

- 字符串
- 布尔值
- 整数
- 浮点数
- Null
- 时间
- 日期

字符串

字符串是比较复杂的类型,举例说明:

str: 这是一行字符串

如果字符串之中包含空格或特殊字符,需要放在引号之中。

str: '内容: 字符串'

单引号和双引号都可以使用,双引号不会对特殊字符转义。

s1: '内容\n字符串' # 会对 \n 字符转义
s2: "内容\n字符串" # 不会对 \n 字符转义

多行字符串可以使用 | 保留换行符,也可以使用 > 折叠换行。

this: |
  Foo
  Bar
that: >
  Foo
  Bar

转换为 javascript 代码:

{ this: 'Foo\nBar\n', that: 'Foo Bar\n' }

工具

参考