概要
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/