繁体   English   中英

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

[英]How to deserialize JSON to Map object using Jackson?

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

有没有人对如何设置我的POJO与Jackson达成建议? 还是解决这个问题的更好方法?

Json示例:

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

映射方法:

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

我的POJO:

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

假设您的金钥始终是跟随JSON的String类型,

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

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

private Map<String, Object> params;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM