參考http://www.ruanyifeng.com/blog/2016/07/yaml.htmlhtml
基本語法規則以下。
• 大小寫敏感
• 使用縮進表示層級關係
• 縮進時不容許使用Tab鍵,只容許使用空格。
• 縮進的空格數目不重要,只要相同層級的元素左側對齊便可
支持的數據結構有三種。
• 對象:鍵值對的集合,又稱爲映射(mapping)/ 哈希(hashes) / 字典(dictionary)
• 數組:一組按次序排列的值,又稱爲序列(sequence) / 列表(list)
• 純量(scalars):單個的、不可再分的值數組
下面只記錄一些比較特別的表示,詳細內容可看連接數據結構
1.null用~表示,如app
parent: ~
2.時間,日期post
時間採用 ISO8601 格式:this
iso8601: 2001-12-14t21:59:43.10-05:00
轉成JavaScript爲:spa
{ iso8601: new Date('2001-12-14t21:59:43.10-05:00') }
日期採用複合 iso8601 格式的年、月、日表示;scala
date: 1976-07-31
轉爲 JavaScript 以下:code
{ date: new Date('1976-07-31') }
3.強制轉換類型——使用兩個感嘆號htm
e: !!str 123 f: !!str true
轉爲 JavaScript 以下
{ e: '123', f: 'true' }
4.字符串
1)字符串默認不使用引號表示,如:
str: 這是一行字符串
轉爲 JavaScript 以下:
{ str: '這是一行字符串' }
2)若是字符串之中包含空格或特殊字符,須要放在引號之中,如:
str: '內容: 字符串'
轉爲 JavaScript 以下:
{ str: '內容: 字符串' }
3)單引號之中若是還有單引號,必須連續使用兩個單引號轉義。
str: 'labor''s day'
4)字符串能夠寫成多行,從第二行開始,必須有一個單空格縮進。換行符會被轉爲空格。
str: 這是一段
多行
字符串
轉爲 JavaScript 以下:
{ str: '這是一段 多行 字符串' }
5)多行字符串能夠使用 | 保留換行符,也能夠使用 > 摺疊換行。(沒有則是空格連成一句)
this: | Foo Bar that: > Foo Bar
轉爲 JavaScript 代碼以下:
{ this: 'Foo\nBar\n', that: 'Foo Bar\n' }
6) +表示保留文字塊末尾的換行,-表示刪除字符串末尾的換行。
s1: | Foo s2: |+ Foo s3: |- Foo
轉爲 JavaScript 代碼以下:
{ s1: 'Foo\n', s2: 'Foo\n\n\n', s3: 'Foo' }
5.引用
錨點&和別名*,能夠用來引用。
defaults: &defaults #這個冒號後面必須是一個空格 adapter: postgres host: localhost development: database: myapp_development <<: *defaults test: database: myapp_test <<: *defaults
&
用來創建錨點(defaults
),<<
表示合併到當前數據,*
用來引用錨點
因此等同於下面的代碼:
defaults:
adapter: postgres
host: localhost
development:
database: myapp_development
adapter: postgres
host: localhost
test:
database: myapp_test
adapter: postgres
host: localhost
另外一個例子爲:
- &showell Steve - Clark - Brian - Oren - *showell
轉爲 JavaScript 代碼以下:
[ 'Steve', 'Clark', 'Brian', 'Oren', 'Steve' ]