如何将yml文件转换为java pojo [英] how to convert yml file to 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;
}
推荐答案
listMap
是List
,这就是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屋!