首页 yaml语法
文章
取消

yaml语法

英文缩写表示为“YAML” – YAML Ain’t Markup Lanaguage

yaml非标记性语言,而是一种序列化语言,旨在让人更容易阅读。

一. 快速入门

1.1 基本规则

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

1.2 数据结构

yaml支持三种数据结构

  • 对象,即字典,哈希,映射

  • 数组,即列表,序列

  • 纯量,单个,不可拆分的值。字符串,数字,浮点数,布尔等

1.3 字典

使用 冒号加空格(“: “)结构表示。

1
2
3
--- #常量字典 常量-常量
ab: cd
ab: {ha: he, fuck: you}#行内字典表达式

1.4 数组

一组 连词线加空格 “- “开头的行,构成的一个数组。

1
2
3
4
5
6
7
8
--- #常量数组 常量-数组
animal:
- cat
- dog
- bird

animal: [cat, dog, bird]

1.5 混合

1
2
3
4
5
6
7
8
9
10
11
--- #数组字典
-
  name: liminglin
  sex: man
- 
  name: lihao
  sex: man
--- #字典数组
baskerballplayer: 
  - kobe
  - jerry

1.6 纯量

  • 字符串
  • 整数
  • 浮点数
  • 布尔值
  • 时间,ISO8601格式: 2001-12-14t21:59:43.10-05:00
  • 日期,ISO8601格式date: 1976-07-31
  • Null, 用‘~’表示

1.7 字符串

  • 字符串默认不使用引号表示,但是如果字符串中包含特殊字符,则需要放在引号中,双引号不会对特殊字符进行转义
  • 单引号中如果还有单引号, 必须使用连续的单引号进行转义
  • 字符串可以写成多行,从第二行开始必须有一个空格缩进,换行符将会被转换成空格。
  • 如果想保留换行符,可以使用 ‘’ 来保留换行符,也可以使用 ‘>’ 来折叠换行符。同时在’‘后面的+号表示保留字符串最后的行号,-号表示删除字符串末尾的行号。

二. 语法

yaml除了支持缩进语法以外,还支持部分的非缩进标识的流语法。数组列表使用 [] 括号表示, 字典映射使用中括号{}表示。

2.1 重复引用

& 建立锚点, «表示合并到当前数据, * 表示引用锚点。

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
defaults: &defaults
  adapter:  postgres
  host:     localhost

development:
  database: myapp_development
  <<: *defaults

test:
  database: myapp_test
  <<: *defaults
  
 ----------------------------------------------
defaults:
  adapter:  postgres
  host:     localhost

development:
  database: myapp_development
  adapter:  postgres
  host:     localhost

test:
  database: myapp_test
  adapter:  postgres
  host:     localhost
1
2
3
4
5
6
7
8
- &default A
- B
- C
- *default
---------------
- A
- B
- A

2.2 文档开始结束

’—’ 三个破折号表示的是一个 指令集的开始。也可以作为文档的开始。三个点号”…“代表着文档的结束

2.3 复合键

一个 问号加空格表示一个复合键。

本文由作者按照 CC BY 4.0 进行授权

计算及运行基本原理

SnakeYAML