如何将yml文件转换为java pojo [英] how to convert yml file to java pojo

查看:854
本文介绍了如何将yml文件转换为java pojo的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

This is the yaml file. I am trying this to load into pojo class. but it shows me cannot create property for listMap. Please help me in digging out this problem. In this yaml file i have a listMap which contains multiple key value pairs. Also i need advice whether this approach is better or i should load it into Map.

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

代码将此Yaml文件加载到pojo中.

code to load this yaml file into 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;
    }

推荐答案

listMapList,这就是YAML无法通过映射填充它的原因.如果您想要一个列表,请像这样更改您的YAML:

listMap is a List, which is why YAML cannot fill it from a mapping. If you want a list, change your YAML like this:

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

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

This will get you a list of single-entry mappings. If you want to keep the mapping on the YAML side, load it into a Map.

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

If you want to have more control over how YAML entities map to Java types, use the SnakeYaml API instead of Jackson. I never get why people use Jackson for YAML processing when it offers fewer customizations than SnakeYaml itself and at the same time is not at any higher level.

这篇关于如何将yml文件转换为java pojo的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆