【问题标题】:how to convert yml file to java pojo如何将 yml 文件转换为 java pojo
【发布时间】:2017-08-16 06:36:38
【问题描述】:

这是 yaml 文件。我正在尝试将其加载到 pojo 类中。但它显示我无法为 listMap 创建属性。请帮我解决这个问题。在这个 yaml 文件中,我有一个包含多个键值对的 listMap。我还需要建议这种方法是否更好,或者我应该将它加载到地图中。

android: dfeiei
driver: dfkejifein
list:
  - aabra
  - ka
  - dabra
listMap:
  key: value
  name: paras
  sirname: porwal

将此 yaml 文件加载到 pojo 中的代码。

YamlLoader yamlFile=yaml.loadAs(in, YamlLoader.class);

这里是 POJO 类。

 import java.util.List;
    import java.util.Map;

    public class YamlLoader {
    private String android;
    private String driver;
    private List<String>list;
    private Map<String,String>map;
    private List listMap;
    public String getAndroid() {
        return android;
    }
    public void setAndroid(String android) {
        this.android = android;
    }
    public String getDriver() {
        return driver;
    }
    public void setDriver(String driver) {
        this.driver = driver;
    }
    public List<String> getList() {
        return list;
    }
    public void setList(List<String> list) {
        this.list = list;
    }

    @Override
    public String toString() {
        return "YamlLoader [android=" + android + ", driver=" + driver + ", list=" + list + ", map=" + map + ", listMap="
                + listMap + "]";
    }
    public Map<String,String> getMap() {
        return map;
    }
    public void setMap(Map<String,String> map) {
        this.map = map;
    }
    public List getListMap() {
        return listMap;
    }
    public void setListMap(List listMap) {
        this.listMap = listMap;
    }

【问题讨论】:

  • 仅仅是因为 yaml 没有为 listmap 保存任何内容。删除 private List listMap; 和任何依赖它的东西,或者如果有用于 yaml 解析和忽略空变量的注释,请搜索库。

标签: java yaml pojo


【解决方案1】:

listMapList,这就是为什么 YAML 无法从 映射 填充它。如果您想要一个列表,请像这样更改您的 YAML:

listMap:
  - key: value
  - name: paras
  - sirname: porwal

这将为您提供单项映射列表。如果您想在 YAML 端保留映射,请将其加载到 Map

如果您想更好地控制 YAML 实体映射到 Java 类型的方式,请使用 SnakeYaml API 而不是 Jackson。我不明白为什么人们使用 Jackson 进行 YAML 处理,因为它提供的自定义项比 SnakeYaml 本身少,同时又不在任何更高级别。

【讨论】:

  • 感谢并同意。但我正在使用蛇 yaml api,也尝试了你提到的但它不起作用。
猜你喜欢
  • 2012-03-09
  • 2016-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多