簡介
1. yaml是什么
2. 為什么要使用yaml
3. 如何使用yaml
4. yaml和其他相近語言的對比
Yet Another Markup Language
適應(yīng)場景:
1. 腳本語言:由于實現(xiàn)簡單,解析成本很低,YAML 特別適合在腳本語言中使用
2. 序列化: YAML是由宿主語言數(shù)據(jù)類型直轉(zhuǎn),的比較適合做序列化。
3. 配置文件:寫 YAML 要比寫 XML 快得多(無需關(guān)注標簽或引號),并且比 INI 文檔功能更強。由于兼容性問題,不同語言間的數(shù)據(jù)流轉(zhuǎn)建議不要用 YAML。
YAML專門針對常見用例而設(shè)計的的:
1. 配置文件
2. 日志文件
3. 跨語言共享文件以及數(shù)據(jù)共享
YAML中允許表示三種格式:
1. 常量值
2. 對象
3. 數(shù)組
表示url屬性值
url:http://www.baidu.com
表示server.host屬性的值
server:
host:http://www.baidu.com
====
數(shù)組,表示server為[a,b,c]
server:
120.168.0.21
120.168.0.22
120.168.0.23
====
常量
pi:3.14 #定義一個數(shù)值
hasChild: true #定義一個boolean值
name:"你好" #定義一個字符串
注釋:使用#作為注釋的開始,YAML中只有行注釋
基本格式:
1. YAML大小寫敏感
2. 使用縮進代表曾經(jīng)關(guān)系
3. 縮進只能使用空格,不要求空格數(shù)
數(shù)據(jù)結(jié)構(gòu)
1. 對象
key:value
也可以寫成:
key:{child-key:value,child-key2:value2}
較為復(fù)雜的對象格式,可以使用問號加一個空格代表一個復(fù)雜的key,配合一個冒號加一個空格代表一個值(value)。
?
- complexkey1
- complexkey2
:
- complexvalue1
- complexvalue2
表示對象的屬性是一個數(shù)組[complexkey1,complexkey2],對應(yīng)的值也是一個數(shù)組[complexvalue1,complexvalue2
數(shù)組
- 使用一個短橫線加一個空格代表一個數(shù)組項:
常量
一些特殊符號
- 第1種,--- YAML可以在同一個文件中,使用—-表示一個文檔的開始
- 也常常使用---來分割不同的內(nèi)容,比如記錄日志:
- 第2種,... 和---配合使用,在一個配置文件中代表一個文件的結(jié)束:
- 第3種,!! YAML中使用!!做類型強行轉(zhuǎn)換:
string:
>- !!str 54321 >
>- !!str true>
#強制轉(zhuǎn)換為字符串
- 第4種,>在字符串中折疊換行,| 保留換行符,這兩個符號是YAML中字符串經(jīng)常使用的符號,比如:
- 第5種,引用。重復(fù)的內(nèi)容在YAML中可以使用&來完成錨點定義,使用*來完成錨點引用,例如:
- 第6種,合并內(nèi)容。主要和錨點配合使用,可以將一個錨點內(nèi)容直接合并到一個對象中。來看一個示例:
-
集合和結(jié)構(gòu)
集合中的塊序列表示每個條目帶有破折號和空格( - )