YAML中的流樣式可以看作是JSON的自然擴展,可以覆蓋可摺疊的內容行,以獲得更可讀的特性,該特性使用錨和別名來創建對象實例。在本章中,我們將重點討論以下概念的流表示法&負;
- Alias Nodes
- Empty Nodes
- Flow Scalar styles
- Flow collection styles
- Flow nodes
別名節點的示例如下所示−
%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格式顯示的代碼的輸出如下所示−