YAML語(yǔ)法規(guī)則
點(diǎn)擊上方藍(lán)色字體,選擇“標(biāo)星公眾號(hào)”
優(yōu)質(zhì)文章,第一時(shí)間送達(dá)
YAML是一個(gè)可讀性高,用來(lái)表達(dá)數(shù)據(jù)序列化的格式。其基本的語(yǔ)法規(guī)則是:
大小寫(xiě)敏感
使用縮進(jìn)表示層級(jí)關(guān)系
縮進(jìn)時(shí)不允許使用Tab鍵,只允許使用空格。
縮進(jìn)的空格數(shù)目不重要,只要相同層級(jí)的元素左側(cè)對(duì)齊即可
編輯器:
(1)建議使用能將跳格字符自動(dòng)轉(zhuǎn)換成空白字符的編輯器,并且使用定寬度的字體。
(2)編輯器要能正確的處理UTF-8和UTF16編碼
標(biāo)量定義
字符串
字符串可以用單引號(hào)或者雙引號(hào)進(jìn)行包裹起來(lái),在有些情況下也可以不用引號(hào)。
A string in YAML
'A singled-quoted string in YAML'
"A double-quoted string in YAML"如果字符串的首部或者尾部有空白字符,那么必須使用引號(hào),否則在解析文件的時(shí)候會(huì)將首部和尾部的空白字符移除。
如果在字符串中包含下面的字符,必須要使用引號(hào),如果你使用單引號(hào)的話可以避免轉(zhuǎn)義,如果使用雙引號(hào)那么在下面的字符前面必須使用轉(zhuǎn)義字符“\”:
:, {, }, [, ], ,, &, *, #, ?, |, -, <, >, =, !, %, @, `
如果在字符串中包含了如下的控制字符,必須要使用雙引號(hào)
\0, \x01, \x02, \x03, \x04, \x05, \x06, \a, \b, \t, \n, \v, \f, \r, \x0e, \x0f, \x10, \x11, \x12, \x13, \x14, \x15, \x16,\x17, \x18, \x19, \x1a, \e, \x1c, \x1d, \x1e, \x1f, \N, \_, \L, \P
此外,在下面這幾種情況下也必須使用引號(hào)進(jìn)行包裹:
當(dāng)字符串是 true 或者 false (否則的話,會(huì)被認(rèn)為是一個(gè)布爾值);
當(dāng)字符串是 null或者 ~ (否則的話,會(huì)被認(rèn)為是一個(gè)null);
當(dāng)字符串像一個(gè)數(shù)字,比如整數(shù)(2,4)、浮點(diǎn)數(shù)(2.6,12.3)、科學(xué)計(jì)數(shù)(12e7)等等可以被看作是數(shù)字的字符串;
當(dāng)字符串看起來(lái)像一個(gè)日期格式(2014-12-31);
如果想通過(guò)多行編寫(xiě)的方式來(lái)定義一個(gè)字符串,那么可以使用“>”,換行符會(huì)被替換為1個(gè)空格字符。
>
This is a very long sentence
that spans several lines in the YAML
but which will be rendered as a string
without carriage returns.每行前面使用2個(gè)空格字符表明繼續(xù)使用前一種定義語(yǔ)法,并且不會(huì)出現(xiàn)在最終的字符串中。
數(shù)字
# 整數(shù)
12
# 八進(jìn)制
014
# 十六進(jìn)制
0x0C
# 浮點(diǎn)數(shù)
13.4
# 科學(xué)計(jì)數(shù)法
1.2e+34
# 無(wú)窮大
.inf空值
null或者~
布爾值
true和false
日期
使用ISO-8601標(biāo)準(zhǔn)
2001-12-14t21:59:43.10-05:00
# 簡(jiǎn)單的日期
2002-12-14集合
使用間斷字符“-”來(lái)定義元素序列
- PHP
- Perl
- Python相當(dāng)于Python中的
['PHP', 'Perl', 'Python']
鍵值對(duì)的表示方式:
PHP: 5.2
MySQL: 5.1
Apache: 2.2.20相當(dāng)于python中的
{'PHP':5.2, 'MySQL':5.1, 'Apache':'2.2.20'}
YAML中使用縮進(jìn)或者更多的空格字符來(lái)表示嵌套的數(shù)據(jù)結(jié)構(gòu),比如下面:
'symfony 1.0':
Pro: 5.0
Propel: 1.2
'symfony 1.2':
Pro: 5.2
Propel: 1.3相當(dāng)于json中:
{
'symfony 1.0':{
'Pro': 5.0,
'Propel':1.2
},
'symfony 1.2':{
'Pro':5.2,
'Propel':1.3
}
}注意:縮進(jìn)必須使用1個(gè)或者更多的空格字符,而不能使用制表符。你也可以使用下面這種嵌套方式:
'Chapter 1':
- Introduction
- Event Types
'Chapter 2':
- Introduction
- Helpers序列的定義也可是使用下面的方式:
[PHP, Perl, Python]
嵌套數(shù)組的定義也可以使用下面的方式:
{ PHP: 5.2, MySQL: 5.1, Apache: 2.2.20 }
你也可以混合搭配著使用,以提高代碼的可讀性:
'Chapter 1': [Introduction, Event Types]
'Chapter 2': [Introduction, Helpers]
'symfony 1.0': { PHP: 5.0, Propel: 1.2 }
'symfony 1.2': { PHP: 5.2, Propel: 1.3 }注釋
YAML采用行注釋,使用“#”
# 注釋一行
"symfony 1.0": { PHP: 5.0, Propel: 1.2 } # 在行尾進(jìn)行注釋
"symfony 1.2": { PHP: 5.2, Propel: 1.3 }
————————————————
版權(quán)聲明:本文為CSDN博主「月虹」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
原文鏈接:
https://blog.csdn.net/weixin_43976393/article/details/99552356
粉絲福利:Java從入門(mén)到入土學(xué)習(xí)路線圖
??????

??長(zhǎng)按上方微信二維碼 2 秒
感謝點(diǎn)贊支持下哈 
