在映射内缩进 YAML 序列

发布于 2024-11-06 23:57:28 字数 466 浏览 0 评论 0原文

以下内容应该有效吗?

parent:
- child
- child

所以我们拥有的是映射内的一系列值。

具体问题是第2行和第3行的缩进是否有效。 Ruby YAML.dump 生成了此代码,但 Yaml 解析器此处拒绝了它,因为子行没​​有缩进。

即它想要这样的东西:

parent:
  - child
  - child

谁是对的?

看看 YAML 规范,它肯定不明显,并且该行

“-”、“?”和“:”用于表示块集合条目的字符被人们认为是缩进的一部分

并没有多大帮助。

Should the following be valid?

parent:
- child
- child

So what we have is a sequence of values inside a mapping.

The specific question is about whether the indentation for the 2nd and 3rd lines is valid. The Ruby YAML.dump generated this code, but the Yaml parser here rejects it, because the child lines are not indented.

i.e. it wants something like:

parent:
  - child
  - child

Who is right?

Looking at the YAML spec, it's certainly not obvious, and the line

The “-”, “?” and “:” characters used to denote block collection entries are perceived by people to be part of the indentation

doesn't help much.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

大海や 2024-11-13 23:57:28

是的,这是合法的 YAML。规范中的相关文本位于此处

由于人们将“-”指示符视为缩进,因此嵌套块序列可能会缩进少一个空格以进行补偿,当然,除非嵌套在另一个块序列内(块出上下文与块内上下文) .

以及随后的示例 8.22

sequence: !!seq
- entry
- !!seq
 - nested
mapping: !!map
 foo: bar

Yes, that is legal YAML. The relevant text from the spec is here:

Since people perceive the “-” indicator as indentation, nested block sequences may be indented by one less space to compensate, except, of course, if nested inside another block sequence (block-out context vs. block-in context).

and the subsequent example 8.22:

sequence: !!seq
- entry
- !!seq
 - nested
mapping: !!map
 foo: bar
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文