是否可以使用这样的多行密钥?
mykey:
- >
key
one:
keytwo: val
其中keyone被视为一个键。我想解析yaml以产生:
{ mykey: [ { keyone: { keytwo: val } } ] }
答案 0 :(得分:4)
您可以在YAML中使用多行密钥,但不能完全按照您的描述进行操作。在YAML映射中,您可以将密钥和值拆分为单独的行,方法是将密钥加上?
,将值加:
,如下所示:
? foo
: bar
以上将在JSON中产生类似{ "foo": "bar" }
的数据结构。 YAML规范将此称为显式键(而通常的foo: bar
样式是隐式)。当您使用显式样式时,键可以是任何 YAML数据结构,包括多行标量:
mykey:
- ? key
one
: keytwo: val
...但是,和YAML中的所有多行标量一样,即使合并了行,每行的内容之间也会保留一个空格,因此上面的结果会产生如下JSON的数据结构: / p>
{ "mykey":
[ { "key one":
{ "keytwo": "val" }
}
]
}
所以你最终得到key one
而不是keyone
,这不是你想要的。但它是你与YAML最接近的。