Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用Jackson从yaml文件创建地图?_Java_Jackson_Yaml - Fatal编程技术网

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