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" ]