【问题标题】:Snakeyaml to convert yaml to pojoSnakeyaml 将 yaml 转换为 pojo
【发布时间】:2013-09-20 06:35:08
【问题描述】:

我想从我的 yaml 文件中加载 POJO 列表。我可以使用蛇 yaml 来做到这一点吗?

我的 yaml 文件看起来像这样 --

- pty1:val1
  pty2:val2

- pty1:val1
  pty2:val2

还有我的pojo -

class pojo {
  String pty1;
  String pty2;
}

Snakeyaml 文档确实说要使用 loadAs() ,但它会加载单个元素。我可以使用自动类型绑定加载此类元素的列表吗?

谢谢!

【问题讨论】:

  • 您是否尝试使用yaml.load(yamlString)?正如我在这里看到的code.google.com/p/snakeyaml/wiki/Documentation#Loading_YAML 它应该对你有所帮助。
  • 它不起作用...它将它作为链接哈希映射列表加载。也许我应该为snakeyaml 添加标签以识别它是一个java bean?
  • 正如您所写,您应该加载 pojos 以列出并处理它。顺便说一句,您也可以使用loadAll 方法。

标签: java converter pojo snakeyaml


【解决方案1】:

我已经开始使用Jackson's YAML format plugin 来序列化和反序列化 YAML。 很友好。

【讨论】:

  • 我本可以在这里找到答案,但找到了一个链接。我想我仍然很欣赏部分答案..
【解决方案2】:

实现此目的的一种方法是创建一个包含 POJO 列表的类。

class POJOList {
    List<pojo> pojoList;
    public POJOList(List<pojo> pojoList) {
        this.pojoList = pojoList;
    }
}

然后您可以将资源文件夹下的yaml文件读取为:

InputStream in = ClassLoader.getResourceAsStream("pojolist.yaml");
POJOList pojoList = yaml.loadAs(in, POJOList.class);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-06
    • 2013-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多