
yaml
yaml 是什么?
在 github 一些開源項目里經(jīng)常可以看到 .travis.yml 文件,后來接觸持續(xù)集成這個概念時發(fā)現(xiàn)很多文件都是 .yml 后綴的文件。我在 阮一峰-YAML 語言教程 里了解了它的作用以及基本寫法,他的那篇文章描述的略微有點啰嗦,實際看到的大多數(shù)配置文件還是及其簡單的,而我們要做的是能讀懂它們,就像讀懂 .json 一樣。
yaml 語言(或者說是一種規(guī)范吧)可以編寫 .yml 文件,和 json 一樣是配置文件。也許是有人認為 json 的寫法不爽,于是乎發(fā)明了這玩意,通過下面的例子,可以看到 yaml 寫的配置文件確實要比 json 方便很多。
編寫規(guī)則
- 大小寫敏感
json 里也是大小寫敏感的,這點二者一樣。
- 使用縮進表示層級關(guān)系
json 中使用 {} 的嵌套表示層級,而 yaml 使用縮進,后者更方便一些。
#表示注釋
json 文件中不允許寫注釋,對于很長配置文件全靠字面意思猜挺痛快的,yaml 可以寫注釋,:100:
數(shù)據(jù)結(jié)構(gòu)
配置文件理應十分簡潔,與 json 相比,不用頻繁的寫 {} 和 [],畢竟換行和 - 符號更加簡潔,字符串也不需要頻繁的加引號(無論是單引號還是雙引號)。
對象
# conf.yml
animal: pets
hash: { name: Steve, foo: bar }
轉(zhuǎn)換為 json 為:
{
{ "animal": "pets" },
{ "hash": { "name": "Steve", "foo": "bar" } }
}
數(shù)組
# conf.yml
Animal:
- Cat
- Dog
- Goldfish
轉(zhuǎn)換為 json 為:
{ "Animal": [ "Cat", "Dog", "Goldfish" ] }
字符串
# conf.yml
# 正常情況下字符串不用寫引號
str: 這是一行字符串
# 字符串內(nèi)有空格或者特殊字符時需要加引號
str: '內(nèi)容: 字符串'
null
# conf.yml
parent: ~
.yml 中 ~ 表示 null,轉(zhuǎn)換為 json 為:
{ "parent": null }