參考:https://www.runoob.com/w3cnote/yaml-intro.html
YAML 是 "YAML Ain't a Markup Language"(YAML 不是一種標記語言)的遞歸縮寫。在開發的這種語言時,YAML 的意思其實是:"Yet Another Markup Language"(仍是一種標記語言)。
YAML 的語法和其他高級語言類似,並且可以簡單表達清單、散列表,標量等數據形態。它使用空白符號縮進和大量依賴外觀的特色,特別適合用來表達或編輯數據結構、各種配置文件、傾印調試內容、文件大綱(例如:許多電子郵件標題格式和YAML非常接近)。
YAML 的配置文件后綴為 .yml,如:runoob.yml 。
基本語法
- 大小寫敏感
- 使用縮進表示層級關系
- 縮進不允許使用tab,只允許空格
- 縮進的空格數不重要,只要相同層級的元素左對齊即可
- '#'表示注釋
數據類型
YAML 支持以下幾種數據類型:
- 對象:鍵值對的集合,又稱為映射(mapping)/ 哈希(hashes) / 字典(dictionary)
- 數組:一組按次序排列的值,又稱為序列(sequence) / 列表(list)
- 純量(scalars):單個的、不可再分的值
YAML 對象
對象鍵值對使用冒號結構表示 key: value,冒號后面要加一個空格。
也可以使用 key:{key1: value1, key2: value2, ...}。
還可以使用縮進表示層級關系;
key:
child-key: value
child-key2: value2
較為復雜的對象格式,可以使用問號加一個空格代表一個復雜的 key,配合一個冒號加一個空格代表一個 value:
?
- complexkey1
- complexkey2
:
- complexvalue1
- complexvalue2
意思即對象的屬性是一個數組 [complexkey1,complexkey2],對應的值也是一個數組 [complexvalue1,complexvalue2]
YAML 數組
以 - 開頭的行表示構成一個數組:
- A
- B
- C
YAML 支持多維數組,可以使用行內表示:
key: [value1, value2, ...]
數據結構的子成員是一個數組,則可以在該項下面縮進一個空格。
-
- A
- B
- C
一個相對復雜的例子:
companies:
-
id: 1
name: company1
price: 200W
-
id: 2
name: company2
price: 500W
意思是 companies 屬性是一個數組,每一個數組元素又是由 id、name、price 三個屬性構成。
數組也可以使用流式(flow)的方式表示:
companies: [{id: 1,name: company1,price: 200W},{id: 2,name: company2,price: 500W}]
復雜的語法如以下: 純量,引用
沒有用到,這里省略