在YAML中扩展数组?

bgc*_*ode 28 yaml

假设我有:

base_array:
  -1
  -2
Run Code Online (Sandbox Code Playgroud)

我怎么能这样做:

my_array: << base_array
  -3
Run Code Online (Sandbox Code Playgroud)

所以my_array是 [1,2,3]

更新:我应该指定我希望扩展发生在YAML本身内部.

hc_*_*dev 5

由于已经评论过的issue#35存在,merge-keys <<对你没有帮助。它仅将引用的合并/插入到映射中(请参阅 YAML 文档合并)。相反,您应该使用序列并使用anchor &alias *

所以你的例子应该是这样的:

base_list: &base
    - 1
    - 2

extended: &ext
    - 3

extended_list:
    [*base, *ext]
Run Code Online (Sandbox Code Playgroud)

将给出这样的输出结果(JSON):

{
  "base_list": [
    1, 
    2
  ], 
  "extended": [
    3
  ], 
  "extended_list": [
    [
      1, 
      2
    ], 
    [
      3
    ]
  ]
} 
Run Code Online (Sandbox Code Playgroud)

虽然不完全符合您的预期,但也许您的解析/加载环境可以将嵌套数组/列表展平为简单的数组/列表。

您可以随时在线测试 YAML,例如使用: