配置文件¶
长期以来,配置文件都以.json后缀的形式出现,各大编程语言也都提供了解析JSON文件的库。后来突然出现了一种.yml后缀的配置文件,并且这种格式的使用越来越频繁。如日中天的Docker和K8S就是使用这种格式作为其配置文件。
一个新工具的出现避免不了有两个原因:
- 旧工具在某些使用场景表现吃力,需要更高效的替代方案
- 旧工具用起来也没什么不好,但是新的工具更加顺手
YAML就属于第二种。一开始的时候大家都用JSON作为配置文件,也没觉得有什么不好。但是YAML出现后,就开始觉得JSON文件好乱啊,这写的都什么玩意,还不支持注释,看得人头晕。
YAML实际上是对JSON的精简,使其更符合人类的阅读习惯。我们来看下语法对比:
在JSON中如果要定义一个"name"属性,必须按照严格的格式要求:
以下格式统统错误:
对应到YAML中,就仅仅只是这么一行,连大括号都省略了:
如果是数组形式,就更明显了:
JSON:
YAML:
很明显可以看到YAML在语法上比JSON更加简洁。还有一个更大的优点是YAML支持注释,这使得配置文件更加易读。JSON由于不支持注释,配置一多就会显得非常凌乱。
把这个配置文件甩给别人,还会担心他看不懂吗?
YAML语法¶
YAML语法特点:
- 大小写敏感
- 使用缩进代表层级关系
- # 表示注释
YAML支持的数据结构有三种:
- 对象:键值对的集合,即字典
- 数组:一组按次序排列的值
- 纯量:单个的、不可再分的值
对象¶
对象键值对使用冒号结构表示,冒号后面要加一个空格。
数组¶
数组使用一个短横线加一个空格分隔的多个值表示。
纯量¶
YAML支持的纯量有:
- 字符串
- 布尔值
- 整数
- 浮点数
- Null
- 时间
- 日期
知道以上语法已经足够你写基本的YAML文件了,是不是很简单?
如果需要验证自己写得对不对,可以去这个网站:https://toolgg.com/yaml-validator.html。