yaml的簡單學習

參考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' ]
相關文章
相關標籤/搜索