YAML格式官網示例 - : # [ ] { } --- ... & * ? > | " " ' ' !! !

其實對於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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章