YAML中的数据结构是什么



我正在努力使最干净的YAML数据结构成为可能(我所说的干净是指最少的无关标记(。

我试图创建的是一个sections的列表,其中每个section本身就是不同类型对象的列表。

在JSON中,这看起来像

{
"sections": [
[
{"p": "Words"}
],
[
{
"ul": "more words",
"p": "other"
} 
]
]
}

到目前为止,这就是我在YAML中所拥有的:

sections:
-
- p: 'Test words.'
- ul:
- "Words"
- "More words"
-
- p: "Other words"

我被这些破折号弄糊涂了。

在上面的例子中,pul都需要破折号(作为名称对象的一部分(还是只需要第一个破折号

即,这在功能上是相同的吗?

sections:
-
- p: 'Test words.'
ul:
- "Words"
- "More words"

此外,后面没有内容的破折号(如小节下的第一个破折号(表示什么?

sections:
- // this dash
- p: 'Test words.'

您的JSON示例:

{
"sections": [
[
{"p": "Words"}
],
[
{
"ul": "more words",
"p": "other"
} 
]
]
}

可以在YAML:中这样写

---
sections:
- - p: Words
- - p: other
ul: more words

有两个连字符(破折号(,因为它是一个嵌套序列(又名列表、数组(。

在YAML中,每个序列项都以一个连字符开头。

JSON示例也是有效的YAML,因为JSON是YAML的一个子集。YAML是作为XML的替代品而发明的,大约在JSON独立发明的同时。当YAML的发明者意识到JSON时,他们在1.2版本中修改了语法以与之兼容,但它已经支持类似于JSON的紧凑风格。

这个例子也可以这样写:

---
sections:
- [
{p: Words}
]
- [
{
ul: more words,
p: other,
} 
]

更多关于嵌套序列和映射

最新更新