YAML 流樣式

2022-12-06 17:20 更新

YAML中的流樣式可以被認(rèn)為是JSON的自然擴(kuò)展,以覆蓋折疊內(nèi)容行以獲得更好的可讀特征,該特征使用錨點(diǎn)和別名來創(chuàng)建對(duì)象實(shí)例。 在本章中,將重點(diǎn)關(guān)注以下概念的流表示

  • 別名節(jié)點(diǎn)
  • 空節(jié)點(diǎn)
  • 流標(biāo)量樣式
  • 流集合樣式
  • 流節(jié)點(diǎn)

別名節(jié)點(diǎn)的示例如下所示 -

%YAML 1.2
---
!!map {
   ? !!str "First occurrence"
   : &A !!str "Foo",
   ? !!str "Override anchor"
   : &B !!str "Bar",
   ? !!str "Second occurrence"
   : *A,
   ? !!str "Reuse anchor"
   : *B,
}

上面給出的代碼的JSON輸出如下 -

{
   "First occurrence": "Foo", 
   "Second occurrence": "Foo", 
   "Override anchor": "Bar", 
   "Reuse anchor": "Bar"
}

具有空內(nèi)容的節(jié)點(diǎn)被視為空節(jié)點(diǎn)。 以下示例顯示了這一點(diǎn) -

%YAML 1.2
---
!!map {
   ? !!str "foo" : !!str "",
   ? !!str "" : !!str "bar",
}

JSON中空節(jié)點(diǎn)的輸出如下所示 -

{
   "": "bar", 
   "foo": ""
}

流標(biāo)量樣式包括雙引號(hào),單引號(hào)和普通類型。下面給出了相同的基本例子 -

%YAML 1.2
---
!!map {
   ? !!str "implicit block key"
   : !!seq [
      !!map {
         ? !!str "implicit flow key"
         : !!str "value",
      }
   ]  
}

上面給出的示例的JSON格式輸出如下所示 -

{
   "implicit block key": [
      {
         "implicit flow key": "value"
      }
   ] 
}

YAML中的流集合與另一個(gè)流集合中的塊集合嵌套。 流集合條目以逗號(hào)(,)指示符終止。 以下示例詳細(xì)說明了流集合塊 -

%YAML 1.2
---
!!seq [
   !!seq [
      !!str "one",
      !!str "two",
   ],

   !!seq [
      !!str "three",
      !!str "four",
   ],
]

JSON中的流集合輸出如下所示 -

[
   [
      "one", 
      "two"
   ], 
   [
      "three", 
      "four"
   ]
]

像JSON這樣的流樣式包括開始和結(jié)束指示符,唯一沒有任何屬性的流樣式是普通標(biāo)量。

%YAML 1.2
---
!!seq [
!!seq [ !!str "a", !!str "b" ],
!!map { ? !!str "a" : !!str "b" },
!!str "a",
!!str "b",
!!str "c",]

上面以JSON格式顯示的代碼輸出如下 -

[
   [
      "a", 
      "b"
   ], 

   {
      "a": "b"
   }, 

   "a", 
   "b", 
   "c"
]



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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)