擴充閱讀
toml-01-toml 配置檔案介紹
YAML-01-yml 配置檔案介紹
YAML-02-yml 配置檔案 java 整合使用 yamlbeans + snakeyaml + jackson-dataformat-yaml
YAML
YAML 是一種面向所有程式語言的人類友好的資料序列化標準。
zh_cn
特性
-
大小寫敏感
-
使用縮排表示層級關係
-
縮排時不允許使用Tab鍵,只允許使用空格。
-
縮排的空格數目不重要,只要相同層級的元素左側對齊即可
-
#
表示註釋,從這個字元一直到行尾,都會被解析器忽略
Test
物件
- 使用
:
分隔,右側必須有空格。
name: ryo
在 JavaScript 中:
{ name: 'ryo' }
- 或者像這樣
person: {name: ryo, age: 21}
在 JavaScript 中:
{ person: { name: 'ryo', age: 21 } }
陣列
以 -
開始,例如:
- apple
- box
- cat
- dog
在 JavaScript 中:
[ 'apple', 'box', 'cat', 'dog' ]
- 陣列的子元素可以這樣表示
-
- apple
- box
- cat
在 JavaScript 中:
[ [ 'apple', 'box', 'cat' ] ]
- 內聯陣列
array: [apple, box]
在 JavaScript 中:
{ array: [ 'apple', 'box' ] }
多種型別的陣列和物件:
names:
- Ryo
- Kyo
- May
animations:
- Key: Kanon
- Key: ReWrite
- Key: CLANNAD
在 JavaScript 中:
{ names: [ 'Ryo', 'Kyo', 'May' ],
animations: [ { Key: 'Kanon' }, { Key: 'ReWrite' }, { Key: 'CLANNAD' } ] }
基本型別
- 數字
age: 12
在 JavaScript 中:
{ age: 12 }
- 布林值
使用 true
或 false
isTrue: false
在 JavaScript 中:
{ isTrue: false }
- 空值
使用 ~
表示 null
memory: ~
在 JavaScript 中:
{ memory: null }
- 時間
時間使用 ISO8601 型別:
time: 2016-10-26t21:59:43.10-05:00
在 JavaScript 中:
{ time: Thu Oct 27 2016 10:59:43 GMT+0800 (CST) }
- 日期
日期使用多種 ISO8601 年、月、日表示
date: 1970-01-01
在 JavaScript 中:
{ date: Thu Jan 01 1970 08:00:00 GMT+0800 (CST) }
- YAML 可以使用
!!
強制型別
name: !!str ryo
age: !!int '56'
在 JavaScript 中:
{ name: 'ryo', age: 56 }
字串
字串預設不需要使用 ``
str: this is a string demo
在 JavaScript 中:
{ str: 'this is a string demo' }
如果字串中有空格或特殊字元,使用 '' 或 ""
name: "hou: ryo"
在 JavaScript 中:
{ name: 'hou: ryo' }
'' 和 "" 的區別是:
- '' 中的特殊字元會被轉義,而 "" 中不會
double quote: "long \n long story"
single quote: 'long \n long story'
在 JavaScript 中:
{ 'double quote': 'long \n long story',
'single quote': 'long \\n long story' }
單引號中如果還有單引號,必須連續使用兩個單引號轉義。
name: 'mary''s song'
在 JavaScript 中:
{ name: 'mary\'s song' }
字串可以寫成多行,從第二行開始,必須有一個空格縮排。換行符會被轉為空格。
long string
a
ha
ha
在 JavaScript 中:
'long string a ha ha'
多行字串可以使用 |
保留換行符,也可以使用 >
摺疊換行。
this: |
angle
beats
that: >
little
busters
在 JavaScript 中:
{ this: 'angle\nbeats\n', that: 'little busters\n' }
+
表示保留文字塊末尾的換行,-
表示刪除字串末尾的換行。
one: |
Spring
two: |+
Summer
three: |-
Autumn
在 JavaScript 中:
{ one: 'Spring\n', two: 'Summer\n\n\n', three: 'Autumn' }
字串可以插入 HTML。
string with html: |
<p class="red">
red
</p>
在 JavaScript 中:
{ 'string with html': '\n<p class="red">\n red\n</p>\n' }
引用
你可以像這樣使用:
Author: &author
name: ryo
age: 11
Blog:
info: learn note
<<: *author
Artile:
info: sth just like
<<: *author
在 JavaScript 中:
{ Author: { name: 'ryo', age: 11 },
Blog: { info: 'learn note', name: 'ryo', age: 11 },
Artile: { info: 'sth just like', name: 'ryo', age: 11 } }