对于Java,是否存在可以在YAML中插入令牌的现有可靠框架?
我的目标是我希望将YAML的一部分放到外部文件中;我可能在YAML中嵌入了一些XML或JSON,我希望能够将它们外部化,以便我的YAML看起来更漂亮。
让我们说例如我有这个YAML模板:
Root:
PropertyA: ${valueA}
PropertyB: |
${valueB}
让${valueA}
为Hello
${valueB}
是:
wonderful
world
我希望最终的YAML文件是
Root:
PropertyA: Hello
PropertyB: |
wonderful
world
请注意,“世界”前面的空间会被保留。
我非常乐意使用一些YAML解析器来编写自己的代码,但是如果已经有一些开源工具可以做到这一点,为什么呢?)
我试图谷歌周围的这种工具,但没有真正有用的东西:(
答案 0 :(得分:0)
仔细看看SnakeYaml;它实际上可以做我需要的。您需要做的就是拥有一个Constructor
子类并覆盖constructScalar()
方法:
Constructor constructor = new Constructor() {
@Override
public Object constructScalar(ScalarNode node) {
if (isToken(node.getValue()) {
return interpolateToken(node.getValue());
}
return super.constructScalar(node);
}
}
Yaml yaml = new Yaml(constructor);
yaml.load(yamlReader);