YAML應用

YAML 的定義是:“YAML Ain ’ t a Markup Language”,或者“Yet Another Markup Language”。

特點

  • YAML 的數(shù)據(jù)組織主要依靠的是空白,縮進,分行等結構,可讀性好。
  • YAML 實現(xiàn)簡單,解析成本很低,和腳本語言的交互性好。
  • YAML 很容易就可以插入另一個 YAML 文件,甚至其他類型的文件,包括 XML, SDL, JSON 等。
  • YAML 使用實現(xiàn)語言的數(shù)據(jù)類型。
  • YAML 可以基于流來處理;
  • YAML 表達能力強,擴展性好。

說明

YAML百度百科
YAML官網(wǎng)

基礎

  • 使用空白字符(不能使用Tab)分層,同層元素左側對齊;
  • 用“-”來表示一些序列的項(Sequence);
  • 用“:”來表示一對項目(Map)里的欄目(Key)和其相應的值(Value);
  • 單行注解由“#”字號開始,可以出現(xiàn)在行中任何位置;
  • 字符串一般不使用引號,但必要的時候可以用引號框住;
  • YAML也有用來描述好幾行相同結構的數(shù)據(jù)的縮寫語法,數(shù)組用“[]”包括起來,hash用“{}”來包括。

其它

  • YAML使用可打印的Unicode字符,可使用UTF-8或UTF-16
  • 使用雙引號表示字串時,可用倒斜線(\)進行特殊字符轉義
  • 區(qū)塊的字串用縮排和修飾詞(非必要)來和其他資料分隔,有新行保留(使用符號<kbd>|</kbd>)或新行折疊(使用符號<kbd>></kbd>)兩種方式
  • 在單一檔案中,可用連續(xù)三個連字號(---)區(qū)分多個檔案
  • 可選擇性的連續(xù)三個點號(...)用來表示檔案結尾(在流式傳輸時非常有用,不需要關閉流即可知道到達結尾處)
  • 重復的內(nèi)容可使從參考標記星號 (*)復制到錨點標記(&)
  • 指定格式可以使用兩個驚嘆號 ( !! ),后面接上名稱
  • 允許在文件中加入選擇性的空行,以增加可讀性
  • 在縮排中空白字符的數(shù)目并不是非常重要,只要相同階層的元素左側對齊就可以了

實例

簡單實例

John.yaml

name: John Smith
age: 37
spouse:
    name: Jane Smith
    age: 25
children:
    -  name: Jimmy Smith
       age: 15
    -  name: Jenny Smith
       age: 12

John今年37歲,有一個幸福的四口之家。兩個孩子Jimmy 和Jenny活潑可愛。妻子Jane年輕美貌。
也可縮寫為:

name: John Smith
age: 37
spouse: {name: Jane Smith, age: 25}
children: [{name: Jimmy Smith, age: 15}, {name: Jenny Smith, age: 12}]

用 YAML 表達的一個購物發(fā)票

  --- !clarkevans.com/^invoice 
  invoice: 34843 
  date : 2001-01-23 
  bill-to: &id001 
    given : Chris 
    family : Dumars 
    address: 
    lines: | 
    458 Walkman Dr. 
    Suite #292 
    city : Royal Oak 
    state : MI 
    postal : 48046 
  ship-to: *id001 
  product: 
    - sku : BL394D 
    quantity : 4 
    description : Basketball 
    price : 450.00 
    - sku : BL4438H 
    quantity : 1 
    description : Super Hoop 
    price : 2392.00 
  tax : 251.42 
  total: 4443.52 
  comments: > 
    Late afternoon is best. 
    Backup contact is Nancy 
    Billsmer @ 338-4338.

比較

JSON

JSON的語法是YAML1.2版的子集,同時非常接近YAML1.0與1.1版的子集,因此大部分的JSON文件都可以被YAML的剖析器剖析。這是因為JSON的語法結構和YAML的內(nèi)置格式相同。雖然大范圍的分層也可以使用類似JSON的內(nèi)置格式,不過YAML標準并不建議這樣使用,除非這樣編寫能讓文件可讀性增加。YAML的許多擴展在JSON是找不到的,如:進階資料形態(tài)、關系錨點、字串不需要雙引號、映射資料形態(tài)會儲存鍵值的順序

XML

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容