如何使用Jackson将JSON反序列化为Map对象?

时间:2018-01-26 05:08:23

标签: java json dictionary jackson

我有一个带有标记的JSON,该标记包含我想要在Java中的POJO中读入地图的任意键和值类型。该映射将是一个类似于JsonValue或JsonNode的String。我使用对象映射器来解析json。

有没有人建议如何设置我的POJO来完成与Jackson的合作?或者更好的方法来解决这个问题?

Json示例:

ObjectMapper objectMapper = new ObjectMapper();
MyClasst = objectMapper.readValue(json, MyClass.class);

映射方法:

public class MyClass {
    private String thing;
    private Map<String, SOMETHING> params;

    public String getThing(){
        return thing;
    }

    public void setThing(String thing) {
        this.thing = thing;
    }

    public Map<String, SOMETHING> getParams(){
        return params;
    }

    public void setParams(Map<String, SOMETHING> params) {
        this.params = params;
    }
}

我的POJO:

if

1 个答案:

答案 0 :(得分:1)

假设您的密钥始终为String类型,以便跟随JS​​ON,

"params": {
        "foo": 45.5,
        "key": "value"
    }

您应该将地图值用作Object,因为值可以是StringDouble或其他任何内容。

private Map<String, Object> params;