什么是YAML¶
官网(https://yaml.org/)
YAML 语言创建于 2001 年,比 XML 晚了三年。YAML虽然在名字上模仿了XML,但实质上与XML完全不同,更适合人类阅读,计算机解析起来也很容易。
JSON是YAML的子集,YAML支持整数、浮点数、布尔、字符串、数组和对象等数据类型。
也就是说,任何合法的JSON文档也都是YAML文档,如果你了解JSON,那么学习YAML会容易很多。
但和JSON比起来,YAML的语法更简单,形式也更清晰紧凑,主要有如下规则:
- 使用缩进表示层次,缩进不允许使用tab,只能用空格,缩进空格数多少不要求,只要保证同一层级空格数一样多即可
- 使用 # 书写注释
- 数组(列表)是使用 - 开头的清单形式
- 对象(字典)的格式与JSON基本相同,但Key不需要使用双引号。
- 表示对象的 : 和表示数组的 - 后面都必须要有空格。
- 可以使用 --- 在一个文件里分隔多个YAML对象。
YAML示例¶
1、YAML数组(列表)
ProgrammingLanguages:
- Python
- Java
- JavaScript
对应json是这样的:
{
"ProgrammingLanguages": [
"Python",
"Java",
"JavaScript"
]
}
2、YAML对象(字典)
CloudResources:
virtualMachines: 5
storageAccounts: 2
对应json是这样:
{
"CloudResources": {
"virtualMachines": 5,
"storageAccounts": 2
}
}
3、组合数组和对象
DataCenter:
primary:
- database: active
- cache: active
secondary:
- webserver: active
- load-balancer: inactive
- storage-drivers: [s3, ceph, glusterfs]
对应json为:
{
"DataCenter": {
"primary": [
{
"database": "active"
},
{
"cache": "active"
}
],
"secondary": [
{
"webserver": "active"
},
{
"load-balancer": "inactive"
},
{
"storage-drivers": ["s3", "ceph", "glusterfs"]
}
]
}
}
用一张图来总结YAML
