Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
YAML中的数据结构是什么?_Yaml - Fatal编程技术网

YAML中的数据结构是什么?

YAML中的数据结构是什么?,yaml,Yaml,我试图使最干净的YAML数据结构成为可能(所谓干净,我指的是最少的无关标记) 我试图创建的是一个节的列表,其中每个节本身就是一个不同类型对象的列表 在JSON中,这看起来像 { "sections": [ [ {"p": "Words"} ], [ { "ul": "more words", "p": "other&q

我试图使最干净的YAML数据结构成为可能(所谓干净,我指的是最少的无关标记)

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

在JSON中,这看起来像

{
"sections": [
  [
     {"p": "Words"}
  ],
  [
    {
     "ul": "more words",
     "p": "other"
    } 
  ]
 ]
}
这就是我目前在YAML的情况:

sections:
  -
    - p: 'Test words.'

    - ul:
      - "Words"
      - "More words"

  -
    - p: "Other words"
这些破折号把我弄糊涂了

在上面的示例中,
p
ul
是否都需要破折号(作为名称对象的一部分)或者只需要第一个破折号?

i、 这在功能上是一样的吗

sections:
  -
    - p: 'Test words.'
     ul:
      - "Words"
      - "More 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,
    } 
  ]

您在问为什么YAML语法是这样的?那可能是问错地方了。这是一个问编程问题的地方。YAML语法就是这样定义的,并为此编写了解析器。也许最好先熟悉基本语法和术语。有和。例如,我不知道你所说的“标识符”是什么意思。@tinita谢谢,我根据你的反馈调整了这个问题。
---
sections:
- [
   {p: Words}
  ]
- [
    {
      ul: more words,
      p: other,
    } 
  ]