如何使用Jackson将JSON对象转换为Java HashMap?

如何使用Jackson将JSON对象转换为Java HashMap?,java,json,hashmap,jackson,Java,Json,Hashmap,Jackson,我的JSON结构如下: { "person": { "name": "snoop", "age": "22", "sex": "male" } } public class Person { HashMap<String,String> map; //getters and setters } 像这样的豆子: { "person": { "na

我的JSON结构如下:

{   
    "person": 
    {
        "name": "snoop",
        "age": "22",
        "sex": "male"
    }
}
public class Person {
    HashMap<String,String> map;

    //getters and setters
}
像这样的豆子:

{   
    "person": 
    {
        "name": "snoop",
        "age": "22",
        "sex": "male"
    }
}
public class Person {
    HashMap<String,String> map;

    //getters and setters
}
计划是:

String jsonString = "{\"type\": \"Extends\", \"target\": \"application\", \"ret\":\"true\" }";

ObjectMapper mapper = new ObjectMapper();
try {
    Map<String, Object> carMap = mapper.readValue(jsonString, new TypeReference<Map<String, Object>>() {
    });

    for (Entry<String, Object> entry : carMap.entrySet()) {
        System.out.println("key=" + entry.getKey() + " and value=" + entry.getValue());
    }

} catch (Exception e) {
    e.printStackTrace();
}
它不起作用,当Hashmap为空时,会给出
NullPointerException


有没有任何方法可以使用Jackson API在Person类中填充Hashmap。

在这里使用
JsonAnyGetter
JsonAnySetter
注释

例如:

Perosn等级:

@JsonRootName("person")
class Person {
    HashMap<String, String> map = new HashMap<>();

    @JsonAnyGetter
    public Map<String, String> getMap() {
        return map;
    }

    @JsonAnySetter
    public void setMap(String name, String value) {
        map.put(name, value);
    }

}

在这里使用
JsonAnyGetter
JsonAnySetter
注释

例如:

Perosn等级:

@JsonRootName("person")
class Person {
    HashMap<String, String> map = new HashMap<>();

    @JsonAnyGetter
    public Map<String, String> getMap() {
        return map;
    }

    @JsonAnySetter
    public void setMap(String name, String value) {
        map.put(name, value);
    }

}

“不工作”具体如何?它给出空的hasmap值。尝试此链接:可能重复的“不工作”具体如何?它给出空的hasmap值。尝试此链接:可能重复的