【发布时间】:2019-08-24 13:50:41
【问题描述】:
考虑一下这个 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
但是我的要求不仅仅是复制属性,而是拥有其他属性。
【问题讨论】:
-
@Anthon 我也尝试过,但结果相同。您可以从 Git 下载代码并根据需要尝试一些操作。我的猜测是,这是库中的错误。