正如YAML所表示的YAML Ain’t Markup Language,YAML 是一種簡潔的非標記語言,文件名後綴爲yml,java中經常用它描述配置文件application.yml。YAML以數據爲中心,比json/xml等更適合做配置文件。使用空白,縮進,分行組織數據,從而使得表示更加簡潔易讀。
一邊學習規則一邊可以在在線Demo這個YAML轉化JSON網頁中進行上手練習
基本規則
YAML有以下基本規則:
1、大小寫敏感
2、使用縮進表示層級關係
3、禁止使用tab縮進,只能使用空格鍵
4、縮進長度沒有限制,只要元素對齊就表示這些元素屬於一個層級。
5、使用#表示註釋
6、字符串可以不用引號標註
分段
在同一個yaml文件中,可以用 --- 來分段,這樣可以將多個文檔寫在一個文件中,如下面一個常見的java項目中的環境配置就是使用---來區分三個環境:
yaml基本語法:
a) k:(空格)v:表示一對鍵值對(空格必須有),以空格的縮進來控制層級關係;只要是左對齊的一列數據,則表示都是同一個層級的。例如如下代碼:
server:
port: 8081
注意:屬性值大小寫敏感
值的寫法
a) 字面量(K:空格v):普通的值(數字,字符串,布爾)
i. 字符串默認不用加上單引號或者雙引號
ii. “”:雙引號;不會轉義字符串裏面的特殊字符,特殊字符會作爲本身想表示的意思,例如:
name: “zhangsan \n lisi” 輸出 zhangsan 換行 lisi
iii. ‘’:單引號;會轉義特殊字符,特殊字符最終只是一個普通的字符串數據
name: ‘zhangsan \n lisi’ 輸出 zhangsan \n lisi
b) 對象/Map(屬性和值)(鍵值對)(k: v)語法示例如下:
friends:
lastName: zhangsan
age: 20
ii. 行內寫法:
friends: {lastName: zhangsan,age: 18}
c) 數組(List,Set)(用-值表示數組中的一個元素)語法示例如下:
pets:
- cat
- dog
- pig
ii. 行內寫法:
pets: [cat,dog,pig]