YAM yml 配置檔案介紹

老马啸西风發表於2024-03-24

擴充閱讀

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 }
  • 布林值

使用 truefalse

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 } }

相關文章