YAML 即 YAML Ain’t a Markup Language 的递归缩写,它实质上是一种通用的数据串行化格式,被广泛应用于运维领域。
概览
基本语法
- 大小写敏感
- 使用缩进表示层级关系,只要相同层级的元素左侧对齐即可
- 缩进时不允许使用Tab键,只允许使用空格。
- 使用
#
进行行注释
数据结构
- 对象:键值对的集合,又称为映射,哈希或字典
- 数组:一组按次序排列的值,又被称为序列或列表
- 纯量:单个的,不可再分割的值
- 复合结构:对象和数组结合使用,形成复合结构
对象与数组
对象
- 基本写法
name: Cubat
age: 23
- 行内对象写法
hash: { name: Cubat, age:23 }
数组
- 基本写法
animal:
- Cat
- Dog
- 行内数组写法
animal: [Cat, Dog]
复合结构
纯量
字符串
- 字符串默认不用引号表示
- 若字符串中包含空格或特殊字符,需要放在引号之中
- 单引号和双引号都可以使用,但双引号不会对特殊字符转义
- 单引号中若需要再使用单引号,需要连续两个单引号进行转义
- 字符串可以写成多行,但从第二行开始必须有一个空格缩进,并且换行符会被转义为空格
- 多行字符串可以使用
|
保留换行符,也可以使用 >
折叠换行
+
表示保留文字块末尾的换行,-
表示删除字符串末尾的换行
字符串以外的元素
- 数值:直接以数字表示,例如:
number: 12.30
- 布尔值用 true 和 false 表示
isSet: true
isGet: false
null 用 ~ 表示
girlfriend: ~
时间使用 ISO8601 格式
time: 2002-12-14t21:59:43.10-05:00
日期也使用 ISO8601格式
date: 1976-07-31
使用双感叹号强制转换数据类型
e: !!str 123
f: !!str true
参考资料
评论
发表评论