yaml是一個數據序列化的標准,適用於所有開發語言,最大的特點是可讀性好。
yaml的一個主要應用方向就是編寫配置文件,有非常多的系統和框架采用yaml進行配置。
yaml有以下基本規則:
1、大小寫敏感
2、使用縮進表示層級關系
3、禁止使用tab縮進,只能使用空格鍵
4、縮進長度沒有限制,只要元素對齊就表示這些元素屬於一個層級。
5、使用#表示注釋
6、字符串可以不用引號標注
三種數據結構
1. map,散列表
使用冒號:表示鍵值對,同一縮進的所有鍵值對屬於一個map
# yaml表示
age : 12
name : beita
# 對應的Json表示
{'age':12,'name':'beita'}
2. list,數組
使用連字符(-)表示:
# yaml表示:
- a
- b
- 1
# 對應Json表示:
['a','b',1]
也可以寫在一行:
# yaml表示:
[a,b,c]
# 對應Json表示:
[ 'a', 'b', 'c' ]
3. scalar,純量
數據最小的單位,不可以再分割。
數據結構嵌套
map和list的元素可以是另一個map或者list或者是純量
1. map嵌套map
1 # YAML表示 2 websites: 3 YAML: yaml.org 4 Ruby: ruby-lang.org 5 Python: python.org 6 Perl: use.perl.org 7 8 # 對應Json表示 9 { websites: 10 { YAML: 'yaml.org', 11 Ruby: 'ruby-lang.org', 12 Python: 'python.org', 13 Perl: 'use.perl.org' } }
2. map嵌套list
1 # YAML表示 2 languages: 3 - Ruby 4 - Perl 5 - Python 6 - c 7 8 # 對應Json表示 9 { languages: [ 'Ruby', 'Perl', 'Python', 'c' ] }
3. list嵌套list
1 # YAML表示 2 - 3 - Ruby 4 - Perl 5 - Python 6 - 7 - c 8 - c++ 9 - java 10 11 # 對應Json表示 12 [ [ 'Ruby', 'Perl', 'Python' ], [ 'c', 'c++', 'java' ] ]
1 # 方法2 2 - - Ruby 3 - Perl 4 - Python 5 - - c 6 - c++ 7 - java 8 9 # 方法3 10 - [Ruby,Perl,Python] 11 - [c,c++,java]
4. list嵌套map
1 # YAML表示 2 - 3 id: 1 4 name: li 5 - 6 id: 2 7 name: liu 8 9 # 對應Json表示 10 [ { id: 1, name: 'li' }, { id: 2, name: 'liu' } ]
