这是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;
}
答案 0 :(得分:0)
listMap
是List
,这就是YAML无法从映射填充它的原因。如果你想要一个列表,请改变你的YAML:
listMap:
- key: value
- name: paras
- sirname: porwal
这将为您提供单条目映射的列表。如果要将映射保留在YAML端,请将其加载到Map
。
如果您想要更好地控制YAML实体如何映射到Java类型,请使用SnakeYaml API而不是Jackson。我从来没有理解为什么人们使用Jackson进行YAML处理,因为它提供的定制比SnakeYaml本身更少,同时也没有更高的级别。