Spring Boot入門教程(零): yaml使用詳解

? ??????????????????????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é)束信號)


yaml文件一


yaml文件二


yaml文件三


yaml文件四

Java解析


java解析一


java解析二


java解析三
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容