YAML 語法原語

2022-12-06 17:19 更新

在本章中,將了解YAML中語法原語的以下幾個方面 -

  • 生產(chǎn)參數(shù)
  • 縮進(jìn)空間
  • 分離空間
  • 忽略的行前綴
  • 折疊線

下面來詳細(xì)地了解每個方面。

1. 生產(chǎn)參數(shù)

生產(chǎn)參數(shù)包括一組參數(shù)以及在特定生產(chǎn)中使用的允許值范圍。 YAML中使用以下生產(chǎn)參數(shù)列表 -

縮進(jìn)它由字符n或m表示字符流取決于其中包含的塊的縮進(jìn)級別。 許多生產(chǎn)都參數(shù)化了這些功能。

上下文它由c表示,YAML支持兩組上下文:塊樣式和流樣式。

樣式它由s表示。 標(biāo)量內(nèi)容可以以五種樣式之一呈現(xiàn):普通,雙引號和單引號流,字面和折疊塊。

Chomping它用t表示。 塊標(biāo)量提供了許多有助于修剪塊的機(jī)制:剝離,剪輯和保留。 Chomping有助于格式化新的線串。 它使用塊樣式表示。 Chomping過程在指標(biāo)的幫助下發(fā)生。 指標(biāo)控制使用字符串換行符生成的輸出。 使用( - )運(yùn)算符刪除換行符,并使用(+)運(yùn)算符添加換行符。

Chomping過程的一個例子如下所示 -

strip: |-
   text↓
clip: |
   text↓
keep: |+
   text↓

解析指定的YAML示例后的輸出如下 -

2. 縮進(jìn)空間

在YAML字符流中,縮進(jìn)被定義為由零個或多個字符組成的換行符。 要記住的最重要的一點(diǎn)是縮進(jìn)不得包含任何制表符。 縮進(jìn)中的字符絕不應(yīng)被視為節(jié)點(diǎn)內(nèi)容信息的一部分。 請注意以下代碼以便更好地理解 -

%YAML 1.1
---
!!map {
   ? !!str "Not indented"
   : !!map {
      ? !!str "By one space"
      : !!str "By four\n spaces\n",
      ? !!str "Flow style"
      : !!seq [
         !!str "By two",
         !!str "Still by two",
         !!str "Again by two",
      ]
   }
}

縮進(jìn)后可以看到的輸出如下 -

{
   "Not indented": {
      "By one space": "By four\n spaces\n", 
      "Flow style": [
         "By two", 
         "Still by two", 
         "Again by two"
      ]
   }
}

3. 分離空間

YAML使用空格字符分隔標(biāo)記。 最重要的注意事項是YAML中的分隔不應(yīng)包含制表符。以下單獨(dú)的代碼顯示了分隔空間的用法 -

{ · first: · Sammy, · last: · Sosa · }

上面顯示的語法將輸出:

{
   "\u00b7 last": "\u00b7 Sosa \u00b7", 
   "\u00b7 first": "\u00b7 Sammy"
}

4. 忽略行前綴

空前綴始終包含縮進(jìn),具體取決于標(biāo)量類型,該標(biāo)量類型還包括前導(dǎo)空格。 普通標(biāo)量不應(yīng)包含任何制表符。 另一方面,引用的標(biāo)量可能包含制表符。 塊標(biāo)量完全取決于縮進(jìn)。

以下示例以系統(tǒng)方式顯示忽略行前綴 -

%YAML 1.1
---
!!map {
   ? !!str "plain"
   : !!str "text lines",
   ? !!str "quoted"
   : !!str "text lines",
   ? !!str "block"
   : !!str "text·?lines\n"
}

塊流的輸出如下 -

{
   "plain": "text lines", 
   "quoted": "text lines", 
   "block": "text\u00b7\u00aelines\n"
}

5. 折疊線

折疊線允許打破長線以便于閱讀。更多的短線意味著更好的可讀性。 通過注意長行的原始語義來實現(xiàn)行折疊。 以下示例演示折疊線 -

%YAML 1.1
--- !!str
"specific\L\
trimmed\n\n\n\
as space"

可以看到JSON格式的折疊輸出如下 -

"specific\u2028trimmed\n\n\nas space"





以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號