用yaml來編寫配置文件


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' } ]

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM