YAML入門


概要

YAML(是YAML Ain't Markup Language的縮寫,尾音的發音類似Camel)是一種序列化數據的語言(類似json, xml),使用輕量高可讀性的語法描述list, dict等數據結構。
可以把YAML看作一個比json更輕量易讀的數據序列化表示語言,該語言使用縮進而不使用括號,在多層嵌套時有更好的可讀性,也更有利於grep, awk等進行操作。

語法

略……

示例

相同的數據使用YAML與json表示,對比如下:

1. list

YAML

- Mark McGwire
- Sammy Sosa
- Ken Griffey

JSON

[
  "Mark McGwire", 
  "Sammy Sosa", 
  "Ken Griffey"
]

2. list type 2

YAML

[Mark McGwire, Tom Curry, Steve Thompson]

JSON

[
  "Mark McGwire", 
  "Tom Curry", 
  "Steve Thompson"
]

3. dict

YAML

hr:  65 
avg: 0.278 
rbi: 147 

JSON

{
  "hr": 65, 
  "avg": 0.27800000000000002, 
  "rbi": 147
}

4. dict involve list

YAML

american:
  - Boston Red Sox
  - Detroit Tigers
  - New York Yankees
national:
  - New York Mets
  - Chicago Cubs
  - Atlanta Braves

JSON

{
  "american": [
    "Boston Red Sox", 
    "Detroit Tigers", 
    "New York Yankees"
  ], 
  "national": [
    "New York Mets", 
    "Chicago Cubs", 
    "Atlanta Braves"
  ]
}

5. dict involve dict

YAML

Mark McGwire: {hr: 65, avg: 0.278}
Sammy Sosa: {
    hr: 63,
    avg: 0.288
  }

JSON

{
  "Sammy Sosa": {
    "hr": 63, 
    "avg": 0.28799999999999998
  }, 
  "Mark McGwire": {
    "hr": 65, 
    "avg": 0.27800000000000002
  }
}

6. list involve list

YAML

- [name        , hr, avg  ]
- [Mark McGwire, 65, 0.278]
- [Sammy Sosa  , 63, 0.288]

JSON

[
  [
    "name", 
    "hr", 
    "avg"
  ], 
  [
    "Mark McGwire", 
    65, 
    0.27800000000000002
  ], 
  [
    "Sammy Sosa", 
    63, 
    0.28799999999999998
  ]
]

Ref

Official Site
http://yaml.org/

Wiki
https://zh.wikipedia.org/zh-cn/YAML

YAML中文快速入門,有思維導圖
http://www.cnblogs.com/chwkai/archive/2005/10/07/beginning_yaml.html

Online YAML parser (parse YAML to Json/XML)
https://yaml-online-parser.appspot.com/


免責聲明!

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



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