Java框架可在YAML中插值令牌



对于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解析器滚动自己的代码,但是如果已经有一些开源工具可以做到这一点,为什么要这样做:(

我试图搜索这种工具,但没有真正有用的出现:(

仔细观察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);

最新更新