YAML - 流程樣式



YAML 中的流程樣式可以被認為是 JSON 的自然擴充套件,以覆蓋可摺疊的內容行,以獲得更好的可讀性,它使用錨點和別名來建立物件例項。在本章中,我們將重點關注以下概念的流程表示法 −

  • 別名節點
  • 空節點
  • 流程標量樣式
  • 流程集合樣式
  • 流程節點

別名節點的示例如下所示 −

%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"
}

內容為空的節點被視為空節點。以下示例對此進行了說明 −

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

空節點的 JSON 輸出表示如下 −

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

流程標量樣式包括雙引號、單引號和平鋪型別。以下給出了一個基本示例 −

%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 中的流程集合用另一個流程集合中的塊狀集合進行巢狀。流程集合條目以逗號 (,) 指示符結尾。以下示例詳細說明了流程集合塊 −

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

流程集合的 JSON 輸出如下所示 −

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

像 JSON 這樣的流程樣式包括開始和結束指示符。唯一沒有屬性的流程樣式是平鋪標量。

%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"
]
廣告