yaml文件語法
此模塊內容轉自:http://www.ruanyifeng.com/blog/2016/07/yaml.html
1 大小寫敏感 2 使用縮進表示層級關系 3 縮進時不允許使用Tab鍵,只允許使用空格。 4 縮進的空格數目不重要,只要相同層級的元素左側對齊即可
#
表示注釋,從這個字符一直到行尾,都會被解析器忽略。
YAML 支持的數據結構有三種
1 對象:鍵值對的集合,又稱為映射(mapping)/ 哈希(hashes) / 字典(dictionary) 2 數組:一組按次序排列的值,又稱為序列(sequence) / 列表(list) 3 純量(scalars):單個的、不可再分的值
對象
對象的一組鍵值對,使用冒號結構表示。
animal: pets
轉為 JavaScript 如下。
{ animal: 'pets' }
Yaml 也允許另一種寫法,將所有鍵值對寫成一個行內對象。
hash: { name: Steve, foo: bar }
轉為 JavaScript 如下。
{ hash: { name: 'Steve', foo: 'bar' } }
數組
一組連詞線開頭的行,構成一個數組。
- Cat - Dog - Goldfish
轉為 JavaScript 如下。
[ 'Cat', 'Dog', 'Goldfish' ]
數據結構的子成員是一個數組,則可以在該項下面縮進一個空格。
- - Cat - Dog - Goldfish
轉為 JavaScript 如下。
[ [ 'Cat', 'Dog', 'Goldfish' ] ]
數組也可以采用行內表示法。
animal: [Cat, Dog]
轉為 JavaScript 如下。
{ animal: [ 'Cat', 'Dog' ] }
復合結構
對象和數組可以結合使用,形成復合結構。
languages: - Ruby - Perl - Python websites: YAML: yaml.org Ruby: ruby-lang.org Python: python.org Perl: use.perl.org
轉為 JavaScript 如下。
{ languages: [ 'Ruby', 'Perl', 'Python' ], websites: { YAML: 'yaml.org', Ruby: 'ruby-lang.org', Python: 'python.org', Perl: 'use.perl.org' } }
golang解析庫
https://github.com/go-yaml/yaml
1 #冒號后面一定要有空格 2 #縮進要用空格 3 GIN_MODE: release 4 AUTHORS: ["hankangkang","zhaozilong"] 5 AGE: 25 6 DEV: 7 PASSAORD: 123 8 TEST: 9 PASSWORD: 45
1 //yaml后面的自動要被雙引號包裹 2 3 type Pwd struct { 4 Password int `yaml:"PASSAORD"` 5 } 6 type Env struct { 7 GinMode string `yaml:"GIN_MODE"` 8 Authors []string `yaml:"AUTHORS"` 9 Age int `yaml:"AGE"` 10 Dev Pwd `yaml:"DEV"` 11 Test Pwd `yaml:"TEST"` 12 13 } 14 15 fun main(){ 16 content,_ := ioutil.ReadFile("env.yaml") 17 env := Env{} 18 err := yaml.Unmarshal(content, &env) 19 20 fmt.Println(err, env) 21 return ; 22 } 23 24 //輸出 25 <nil> {release [hankangkang zhaozilong] 25 {123} {0}}