繁体   English   中英

如何将yml文件转换为java pojo

[英]how to convert yml file to java pojo

这是yaml文件。 我正在尝试将此加载​​到pojo类中。 但它显示我无法为listMap创建属性。 请帮助我找出这个问题。 在这个yaml文件中,我有一个listMap,其中包含多个键值对。 我还需要建议是否采用这种方法更好,还是应该将其加载到Map中。

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;
    }

listMap是一个List ,这就是为什么YAML无法从映射中填充它的原因。 如果需要列表,请按以下方式更改YAML:

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

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

如果要控制YAML实体如何映射到Java类型,请使用SnakeYaml API而不是Jackson。 我从来不明白为什么人们使用杰克逊进行YAML处理,因为它提供的自定义项少于SnakeYaml本身,而同时又没有更高的级别。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM