假设我有一个名为 original.yml 的 YML 文件,其中包含一个对象数组
array_in_yml:
- start: 1
- middle: 2
- end: 3
我已将其包含在modified.yml中。
!include "original.yml"
array_in_yml: []
当我加载modified.yml文件时,我希望这个数组为空,但它似乎有3个值,就像original.yml一样。如何强制/覆盖使该数组为空?
关于!include
的讨论似乎偏离了实际问题。让我们假设以某种未知的方式,!include
行被替换为original.yml
中的内容。我们将会有:
array_in_yml:
- start: 1
- middle: 2
- end: 3
array_in_yml: []
array_in_yml
。你的YAML处理器可能会忽略这个问题,并将第一个值(其中包含三个项目的序列)分配给键array_in_yml
。
yaml-cpp
吗?我不认为它支持!include
功能,所以如果它加载了3个值,我会感到惊讶。如果是这样,请发布能够显示问题的工作源代码。 - Jesse Bedermodified.yml
不是一个有效的 YAML 文件,您不能在文件的顶层同时拥有标记为!include
的标量字符串 "original.yml",以及指示映射的键值对 (array_in_yml: []
)。您应该包括一个最小的工作程序来展示您所看到的内容。 - Anthonoriginal.yml
文件没有对象数组。在顶层,它有一个映射,其中包含一个键值对。该值是一个序列,其中所有元素都是映射,每个映射都有一个键值对。没有数组,也没有对象。 - Anthon