Java 如何使用Jackson从yaml文件创建地图?
这是一节课:Java 如何使用Jackson从yaml文件创建地图?,java,jackson,yaml,Java,Jackson,Yaml,这是一节课: public class YamlMap { Map<String, String> mp = new HashMap<>(); String get(String key) { return this.mp.get(key); } } 当我跑步时: ObjectMapper mapper = new ObjectMapper(new YAMLFactory()); mapper.findAndRegisterM
public class YamlMap {
Map<String, String> mp = new HashMap<>();
String get(String key) {
return this.mp.get(key);
}
}
当我跑步时:
ObjectMapper mapper = new ObjectMapper(new YAMLFactory());
mapper.findAndRegisterModules();
YamlMap ym2 = mapper.readValue(new File("src/main/resources/props.yml"), YamlMap.class);
然后我得到一个错误:
线程main com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException:无法识别的字段YamlMap类YamlMap快速解决方案是在字段上方添加@JsonPropertymp:
public class YamlMap {
@JsonProperty("mp")
Map<String, String> mp;
}
快速解决方案是在字段上方添加@JsonPropertymp:
public class YamlMap {
@JsonProperty("mp")
Map<String, String> mp;
}
它在上面。第二个代码矩形;这不是ObjectMapper的工作原理。它将直接读取key1和key2,然后尝试将key1和key2设置为YamlMap中的字段。但它们不作为字段存在,所以这不起作用。这是否回答了您的问题?反序列化使代码过于复杂…只需在上面用带有@JSONPropertyMyPit的mp字段进行注释即可。第二个代码矩形;这不是ObjectMapper的工作原理。它将直接读取key1和key2,然后尝试将key1和key2设置为YamlMap中的字段。但它们不作为字段存在,所以这不起作用。这是否回答了您的问题?反序列化使代码过于复杂…只需使用带有@JsonPropertymp的mp字段进行注释
public class YamlMap {
Map<String, String> mp;
@JsonCreator
public YamlMap(@JsonProperty("mp") Map<String, String> mp) {
this.mp = mp;
}
}