gpt4 book ai didi

java - Yaml 合并忽略 anchor 中定义的属性

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:31:09 27 4
gpt4 key购买 nike

考虑这个 yaml

- node_1:
properties: &node_1_prop
role: management
layer: 1

- node_2:
properties:
level: 24
<<: *node_1_prop

我正在尝试使用 snakeyaml 创建节点图图书馆,我期待 node_1 的两个属性和三个 node_2喜欢this .

Path yamlPath = Paths.get( "nodes.yaml");
InputStream yamlStream = Files.newInputStream(yamlPath);
StreamReader sreader = new StreamReader(new UnicodeReader(yamlStream));
Composer composer = new Composer(new ParserImpl(sreader), new Resolver());
Node rootNode = composer.getSingleNode();

snakeyaml 的输出节点图显示 <<作为 node_2 的属性.

显示 Git 上结果的代码示例.

编辑:

如果我按如下方式定义 yaml,则节点构建良好:

- node_1:
properties: &node_1_prop
role: management
layer: 1

- node_2:
<<: *node_1_prop

但是我的要求不仅仅是按原样复制属性,还需要有额外的属性。

最佳答案

您不会完全加载您的 YAML,您只是编写它(参见 SnakeYaml 实现的 graph in the YAML 1.1 spec)。

撰写步骤解析别名,但保留标签——标签在构造期间解析。合并键定义为 as a tag因此,在您编写 YAML 输入时不会得到处理。

关于java - Yaml 合并忽略 anchor 中定义的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55488281/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com