您好,登錄后才能下訂單哦!
一、YAML簡介
YAML是一種人性化、跨語言、基于Unicode的數據序列化語言,YAML是“ YAML Ain’t a Markup Language ” 的遞歸縮寫,YAML不是一種標記語言,讀音“ 雅梅爾”。
二、YAML的優點(特性)
YAML的數據結構清晰,易于閱讀。
YAML是跨語言的,它的數據在編程語言之間可移植。
YAML符合敏捷語言的數據結構。
YAML支持一次性操作。
YAML表現力強,擴展性好。
YAML易于實現。
三、YAML與其他語言的關系
與JSON的關系
共同點:
JSON和YAML都是易于閱讀的數據格式。
不同點:
JSON的設計目標是簡單和通用,而YAML的設計主要在于易于閱讀和支持任何復雜數據結構。
YAML可看作JSON的自然超集,提供更好的可讀性和完整的信息模型。
每一個JSON文件都是一個有效的YAML文件,JSON遷移向YAML是很容易的事。
與XML的關系
YAML和XML沒有直接相關性。YAML是一種數據序列化語言。XML是一種向后兼容的通用標記語言(SGML)。XML有設計約束,而YAML沒有。
四、YAML語法
基本規則
YAML區分大小寫
使用縮進表示層級關系
縮進使用空格,不能使用TAB(同層級左對齊即可,不要求空格數,一般用2或4個空格)
使用#號表示注釋(YAML只有行注釋)
數據結構
字典:鍵值對的集合,又稱為映射(mapping)/ 哈希(hashes) / 對象
數組:一組按次序排列的值,又稱為序列(sequence) / 列表(list)
純量:單個的、不可再分的值,即基本數據類型
注意:重復定義時,后面的值會覆蓋前面的值;值為 int, float, bool等類型,解析后會轉換為對應的類型
字典
key: value
縮進表層級關系
key:
child-key1: child-value1
child-key2: child-value2
縮進只能用空格,不能用TAB鍵
上面的用流式寫法表示:
key: {child-key1: child-value1, child-key2, child-value2}
數組鄭州人流多少錢 http://www.hnmt120.com/
language :
- Java
- Python
- Golang
等價于 {‘language’ : [‘Java’, ‘Python’, ‘Golang’]}
server :
-
host : 127.0.0.1
port : 80
-
host : 127.0.0.1
port : 8081
流式寫法 server : [{‘host’ : ‘127.0.0.1’, ‘port’ : ‘80’ } , {‘host’ : ‘127.0.0.1’, ‘port’ : ‘80’ } ]
-
- Java
- Python
- Golang
等價于 [[‘Java’, ‘Python’, ‘Golang’]]
?
- complexkey1
- complexkey2
:
- complexvalue1
- complexvalue2
等價于 {[complexkey1, complexkey2] : [complexvalue1, complexkey2]}
純量
純量,也就是常量吧,整數,浮點數,字符串,NULL,日期,布爾,時間。以下用一個例子演示
int:
- 333
- 0b1010_0111_0100_1010_1110 # 二進制表示
float:
- 3.14
- 6.8523015e+5 # 科學計數法表示
string:
- 'bcat' # 雙引號轉譯 單引號不轉譯 下面是多種字符串換行寫法
- line
newline # 換行連接處會轉譯成一個空格
- |
line # 換行處會有 \n 換行符
newline
- >
line # 字符串結尾會有 \n 換行符
newline
- "line\ # 換行處無空格 無 \n 換行符
newline"
null:
- username : 'bcat'
- ~ # ~ 表示null
date:
- 2019-12-17 # 日期必須使用 ISO 8601格式 即 yyyy-MM-dd格式
datetime:
- 2019-12-17T16:15:31+08:00 #時間使用ISO 8601格式 時間日期之間用T連接 時間時區之間用+分隔其他特殊符號
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。