Java 在 YAML 中插入令牌的框架

Java Framework to interpolate tokens in 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

注意"world"前面的space被保留。

我非常乐意使用一些 YAML 解析器来编写我自己的代码,但是如果已经有一些开源工具可以这样做,为什么还要这样做:)

我尝试 Google 寻找这种工具,但没有找到真正有用的东西:(

仔细查看 SnakeYaml; it can actually do what I need. All you need to do is to have a 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);