【发布时间】:2019-05-16 07:54:25
【问题描述】:
我在一个目录中有几个 yaml 文件。如何将它们全部加载到同一个 YAML 对象(映射)中?
# a.yaml
a: ValueA
c: ValueC
# b.yaml
a: ValueAA
b: ValueB
我要a.yaml,后跟b.yaml。结果是:
{ a: ValueAA, b: ValueB, c: ValueC }
我可以做到这一点的一种方法是将 a.yaml 和 b.yaml 的内容显式连接成一个字符串,然后加载合并的字符串。我想知道是否可以避免这种情况,只需使用 load() API 依次加载 2 个 yaml 文件。
【问题讨论】:
-
如果 yaml 文件用 tla 文件分隔符分隔,这是否也适用? (---) 现在我最终打开了多个输入流并将它们与 SequenceInputStream 合并,并且 SnakeYaml 1.23 给出了正确的解析输出。
-
非常感谢!我没有在示例 sn-p 中包含文件标记,我想我应该包含。如果我加载多个 Yaml 文件的单个流,我如何最终得到多个数据结构?我使用单个序列输入流作为 loadAll API 的参数,它会返回一个 String 到 Object 的 Map 作为响应。至少这是我在测试中看到的。也许那是蛇 yaml 特有的东西?
-
知道了。谢谢安东!我想如果你把这个讨论总结为一个答案,我们可以结束这个问题。