yaml文件 .yml

  YAML文件簡介

 咱們可能在spring配置文件裏見到過.yml格式的東東,配置文件不都是.propertie或者.xml文件嗎?.yml是什麼鬼,今天我帶大家來一探究竟。html

 YAML(Yet Another Markup Language)(發音 /ˈjæməl/ )
 一種基於Unicode容易閱讀,容易和腳本語言交互的,用來表達資料序列的編程語言。spring

 

適應場景

  1. 腳本語言:因爲實現簡單,解析成本很低,YAML 特別適合在腳本語言中使用
  2. 序列化: YAML是由宿主語言數據類型直轉,的比較適合作序列化。
  3. 配置文件:寫 YAML 要比寫 XML 快得多(無需關注標籤或引號),而且比 INI 文檔功能更強。因爲兼容性問題,不一樣語言間的數據流轉建議不要用 YAML。

語言優勢

  1. YAML易於人們閱讀。
  2. YAML數據在編程語言之間是可移植的。
  3. YAML匹配敏捷語言的本機數據結構。
  4. YAML具備一致的模型來支持通用工具。
  5. YAML支持單程處理。
  6. YAML具備表現力和可擴展性。
  7. YAML易於實現和使用。

YAML 語法

  1. 使用空格 Space 縮進表示分層,不一樣層次之間的縮進能夠使用不一樣的空格數目,可是同層元素必定左對齊,即前面空格數目相同(不能使用 Tab,各個系統 Tab對應的 Space 數目可能不一樣,致使層次混亂)
  2. ‘#’表示註釋,只能單行註釋,從#開始處到行尾
  3. 破折號後面跟一個空格(a dash and space)表示列表
  4. 用冒號和空格表示鍵值對 key: value
  5. 簡單數據(scalars,標量數據)能夠不使用引號括起來,包括字符串數據。用單引號或者雙引號括起來的被看成字符串數據,在單引號或雙引號中使用C風格的轉義字符

Sequence of Scalars  簡單數據列表

[plain]  view plain  copy
 
  1. - Mark McGwire  
  2. - Sammy Sosa  
  3. - Ken Griffey  

Mapping Scalars to Scalars 簡單數據鍵值對以及註釋

[plain]  view plain  copy
 
  1. hr:  65    # Home runs  
  2. avg: 0.278 # Batting average  
  3. rbi: 147   # Runs Batted In  

Mapping Scalars to Sequences 簡單數據列表鍵值對

[plain]  view plain  copy
 
  1. american:  
  2.   - Boston Red Sox  
  3.   - Detroit Tigers  
  4.   - New York Yankees  
  5. national:  
  6.   - New York Mets  
  7.   - Chicago Cubs  
  8.   - Atlanta Braves  

Sequence of Mappings 鍵值對列表 

[plain]  view plain  copy
 
  1. -  
  2.   name: Mark McGwire  
  3.   hr:   65  
  4.   avg:  0.278  
  5. -  
  6.   name: Sammy Sosa  
  7.   hr:   63  
  8.   avg:  0.288  

YAML 還支持流類型,用中括號括起來表示列表,用逗號分隔元素;用大括號括起來表示鍵值對,用逗號分隔元素。

Sequence of Sequences 列表的列表 

[plain]  view plain  copy
 
  1. - [name        , hr, avg  ]  
  2. - [Mark McGwire, 65, 0.278]  
  3. - [Sammy Sosa  , 63, 0.288]  

 Mapping of Mappings  鍵值對的鍵值對

[plain]  view plain  copy
 
  1. Mark McGwire: {hr: 65, avg: 0.278}  
  2. Sammy Sosa: {  
  3.     hr: 63,  
  4.     avg: 0.288  
  5.   }  

yaml 官方網站:http://www.yaml.org
yaml 官方文檔:http://www.yaml.org/spec/1.2/spec.html
相關文章
相關標籤/搜索