配置文件 .yml 寫(xiě)法小結(jié)

yaml
yaml

yaml 是什么?

在 github 一些開(kāi)源項(xiàng)目里經(jīng)??梢钥吹?.travis.yml 文件,后來(lái)接觸持續(xù)集成這個(gè)概念時(shí)發(fā)現(xiàn)很多文件都是 .yml 后綴的文件。我在 阮一峰-YAML 語(yǔ)言教程 里了解了它的作用以及基本寫(xiě)法,他的那篇文章描述的略微有點(diǎn)啰嗦,實(shí)際看到的大多數(shù)配置文件還是及其簡(jiǎn)單的,而我們要做的是能讀懂它們,就像讀懂 .json 一樣。

yaml 語(yǔ)言(或者說(shuō)是一種規(guī)范吧)可以編寫(xiě) .yml 文件,和 json 一樣是配置文件。也許是有人認(rèn)為 json 的寫(xiě)法不爽,于是乎發(fā)明了這玩意,通過(guò)下面的例子,可以看到 yaml 寫(xiě)的配置文件確實(shí)要比 json 方便很多。

編寫(xiě)規(guī)則

  • 大小寫(xiě)敏感

json 里也是大小寫(xiě)敏感的,這點(diǎn)二者一樣。

  • 使用縮進(jìn)表示層級(jí)關(guān)系

json 中使用 {} 的嵌套表示層級(jí),而 yaml 使用縮進(jìn),后者更方便一些。

  • # 表示注釋

json 文件中不允許寫(xiě)注釋?zhuān)瑢?duì)于很長(zhǎng)配置文件全靠字面意思猜挺痛快的,yaml 可以寫(xiě)注釋?zhuān)?100:

數(shù)據(jù)結(jié)構(gòu)

配置文件理應(yīng)十分簡(jiǎn)潔,與 json 相比,不用頻繁的寫(xiě) {}[],畢竟換行和 - 符號(hào)更加簡(jiǎn)潔,字符串也不需要頻繁的加引號(hào)(無(wú)論是單引號(hào)還是雙引號(hào))。

對(duì)象

# 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
# 正常情況下字符串不用寫(xiě)引號(hào)
str: 這是一行字符串
# 字符串內(nèi)有空格或者特殊字符時(shí)需要加引號(hào)
str: '內(nèi)容: 字符串'

null

# conf.yml
parent: ~

.yml 中 ~ 表示 null,轉(zhuǎn)換為 json 為:

{ "parent": null }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容