? ??????????????????????Spring Boot入門教程(零): yaml使用詳解
轉(zhuǎn)載自:https://blog.csdn.net/vbirdbest/article/details/79541807
簡介
YAML 是一種簡潔的非標記語言(YAML Ain’t Markup Language),YAML以數(shù)據(jù)為中心,使用空白,縮進,分行組織數(shù)據(jù),從而使得表示更加簡潔易讀, 常用于作為配置文件, 比json更加簡潔。
YAML 1.2 (3rd Edition): http://yaml.org/spec/1.2/spec.html
js-yaml: https://github.com/nodeca/js-yaml
YAML轉(zhuǎn)化JSON: http://nodeca.github.io/js-yaml/
YAML與XML、JSON比較
YAML 與 XML:具有 XML 同樣的優(yōu)點,但比 XML 更加簡單、敏捷等
YAML 與 JSON
JSON 可以看作是 YAML 的子集,也就是說 JSON 能夠做的事情,YAML 也能夠做
YAML 能表示得比 JSON 更加簡單和閱讀,例如“字符串不需要引號”。所以 YAML 容易可以寫成 JSON 的格式,但并不建議這種做
YAML 能夠描述比 JSON 更加復(fù)雜的結(jié)構(gòu),例如“關(guān)系錨點”可以表示數(shù)據(jù)引用(如重復(fù)數(shù)據(jù)的引用)
YAML的適用范圍
由于實現(xiàn)簡單,解析成本很低,YAML特別適合在腳本語言中使用。列一下現(xiàn)有的語言實現(xiàn):Ruby,Java,Perl,Python,PHP,OCaml,JavaScript。除了Java,其他都是腳本語言.
YAML比較適合做序列化。因為它是宿主語言數(shù)據(jù)類型直轉(zhuǎn)的,由于兼容性問題,不同語言間的數(shù)據(jù)流轉(zhuǎn)建議現(xiàn)在不要用YAML.
YAML做配置文件也不錯。比如Ruby on Rails的配置就選用的YAML。對ROR而言,這很自然,也很省事.
語法:
大小寫敏感
使用縮進表示層級關(guān)系
禁止使用tab縮進,只能使用空格鍵 , 建議使用兩個空格
縮進的空格數(shù)目不重要,只要相同層級的元素左側(cè)對齊即可
# 表示注釋,從這個字符一直到行尾,都會被解析器忽略。
字符串可以不用引號,也可以使用單引號或者雙引號
數(shù)據(jù)結(jié)構(gòu)
對象(鍵值表): 鍵值對的集合,又稱為映射(mapping)/ 哈希(hashes) / 字典(dictionary)冒號分隔鍵值對(Key: Value), Key需要頂格寫,前面不能有空格,冒號后面需要有一個空格然后再跟值, 相同的縮進屬于同一個map 例如age: 12
數(shù)組(列表): 一組按次序排列的值,又稱為序列(sequence) / 列表(list)
純量scalar: 數(shù)據(jù)最小的單位,不可以再分割。
對象和數(shù)組可以任意嵌套組合成負責(zé)的數(shù)據(jù)結(jié)構(gòu)。
數(shù)據(jù)類型: 支持字符串、整數(shù)、浮點數(shù)、布爾、日期、null、對象、數(shù)組
示例
在一個文件中,可同時包含多個文件,并用---分隔。選擇性的符號”…”可以用來表示文件結(jié)尾(在利用流的通信中,這非常有用,可以在不關(guān)閉流的情況下,發(fā)送結(jié)束信號)




Java解析


