其實對於yaml格式的理解應該結合數組來理解
1.' - '隊列
- list 1
- list 2
- list 3
對應於數組當中就是 array[3] 其中
array[0]="list 1"
array[1]="list 2"
array[2]="list 3"
一個'-'就代表當前數組結構新增加一行
2.' : 'map
- key1 : value1
- key2 : value2
- key3 : value3
key只是獲取到value的名稱,就像是用變量名獲取到數據一樣(a=30)這個時候使用a就能夠得到30這個值
array[0]=value1 equal array["key1"]=value1
array[1]=value2 equal array["key2"]=value2
array[2]=value3 equal array["key3"]=value3
':'和'-'可以任意組合 array[2][3]
american: array["american"].size=3
- Boston Red Sox array["american"][0]="Boston Red Sox"
- Detroit Tigers array["american"][1]="Detroit Tigers "
- New York Yankees array["american"][2]="New York Yankees"
national: array["national"].size=3
- New York Mets array["national"][0]="New York Mets"
- Chicago Cubs array["national"][0]="Chicago Cubs"
- Atlanta Braves array["national"][0]="Atlanta Braves"
array[2][3]
-
name: Mark McGwire array[0]["name"]="Mark McGwire"
hr: 65 array[0]["hr"]=65
avg: 0.278 array[0]["avg"]=0.278
-
name: Sammy Sosa array[0]["name"]="Sammy Sosa"
hr: 63 array[0]["hr"]=63
avg: 0.288 array[0]["avg"]=0.288
3.' # '註釋
hr: 65 # Home runs
array["hr"]=65
4. " [ ] " 隊列 直接用逗號來斷的隊列
array[3][3]
- [name,hr,avg] array[0][0]=name array[0][1]=hr array[0][2]=avg
- [Mark McGwire,65,0.278] array[1][0]=Mark McGwire array[1][1]=65 array[1][2]=0.278
- [Sammy Sosa,63,0.288] array[2][0]=Mark McGwire array[2][1]=63 array[2][2]=0.288
Mark McGwire: [name,hr,avg] array["Mark McGwire"][0]=name array["Mark McGwire"][1]=hr array["Mark McGwire"][2]=avg
5. " {} "集合 直接用逗號來斷 可以裏面在放map array[2][2]
Mark McGwire: {hr: 65, avg: 0.278} array["Mark McGwire"]["hr"]=65 array["Mark McGwire"]["avg"]=0.278
Sammy Sosa: {hr: 63,avg: 0.288} array["Sammy Sosa"]["hr"]=63 array["Sammy Sosa"]["avg"]=0.288
6." --- "新文檔的標識 一次解析結束,yaml意義上的不同文件,只是本地文件上是在同一份文件裏面
# 文件1
---
- Mark McGwire
- Sammy Sosa
- Ken Griffey
# 文件2
---
- Chicago Cubs
- St Louis Cardinals
7." ... "文檔結束標示
time: 20:03:20
player: Sammy Sosa
action: strike (miss)
...
8." & " " * "錨點 &標記錨點 *取錨點指向內容 類似於指針
hr: hr:
- Mark McGwire - Mark McGwire
- &SS Sammy Sosa - Sammy Sosa &ss指向內容Sammy Sosa
rbi: rbi:
- *SS - Sammy Sosa *SS 取出內容
- Ken Griffey - Ken Griffey
9." ? "question mark and space 複雜map 多個key對應一個value鍵是一個列表或鍵值表
? - Detroit Tigers array["Detroit Tigers"]=2001-07-23
- Chicago cubs array["Chicago cubs"]=2001-07-23
:
- 2001-07-23
? [ New York Yankees, array["New York Yankees"]=[ 2001-07-02, 2001-08-12,2001-08-14 ]
Atlanta Braves ] array[" Atlanta Braves"]=[ 2001-07-02, 2001-08-12,2001-08-14 ]
: [ 2001-07-02, 2001-08-12, 也就是說 array["New York Yankees"][0]=2001-07-02
2001-08-14 ] array["New York Yankees"][1]=2001-08-12
- item : Super Hoop array[0]["item"]=Super Hoop
quantity: 1 array[0]["quantity"]=1
- item : Basketball array[1]["item"]=Basketball
quantity: 4 array[1]["quantity"]=4
- item : Big Shoes array[2]["item "]=Big Shoes
quantity: 1 array[1]["quantity"]=1
10." | "所有的換行符會被保留
--- |
\//||\/||
// || ||__
11." > "摺疊標誌 新的一行會被空格代替 結束摺疊標誌是遇到空行或者是更進一步縮進
--- >
Mark McGwire's Mark McGwire's year was crippled by a knee injury.
year was crippled
by a knee injury.
>
Sammy Sosa completed another Sammy Sosa completed another fine season with great stats.
fine season with great stats. 63 Home Runs
0.288 Batting Average
63 Home Runs What a year!
0.288 Batting Average
What a year!
name: Mark McGwire array["name"]=Mark McGwire
accomplishment: > array["accomplishment"]=Mark set a major league home run record in 1998.
Mark set a major league
home run record in 1998.
stats: | array["stats"]=65 Home Runs
65 Home Runs 0.278 Batting Average
0.278 Batting Average
12." "" "和" '' "區別
""支持轉義字符串
''不支持 支持轉義字符串
13." !! "聲明數據類型 " ! "聲明自定義數據類型
not-date: !!str 2002-04-28 #聲明2002-04-28是字符串類型不是日期類型
picture: !!binary | #聲明2002-04-28是字符串類型不是日期類型
R0lGODlhDAAMAIQAAP//9/X
17unp5WZmZgAAAOfn515eXv
Pz7Y6OjuDg4J+fn5OTk6enp
56enmleECcgggoBADs=
--- !!set set自動給map分配null value
? Mark McGwire
? Sammy Sosa
? Ken Griff
--- !!omap omap聲明每個map只有一個key
- Mark McGwire: 65
- Sammy Sosa: 63
- Ken Griffy: 58