反序列化javax.json.JsonObject

时间:2017-08-29 13:31:26

标签: java json rest deserialization json-deserialization

通过@Consumes(MediaType.APPLICATION_JSON)我得到像这样的JSON对象的休息服务

{
    "key": "myKey",
    "value": {
      "port": 1234,
      "username": "JimmyTest5",
      "password": "password123",
      "host": "http://myurl.com",
    }
}

在我的java代码中,我需要将这个JSON插入到类中:

public class Input {

    @JsonProperty("key")
    private String key;
    @JsonProperty("value")
    private JsonObject value;

    protected Input () {
    }

    public Input (String key, JsonObject value) {
        this.key = key;
        this.value = value;
    }

    public String getKey() {
        return key;
    }


    public JsonObject getValue() {
        return value;
    }}

JsonObject类型是必需的。 可悲的是,我无法找到任何方法来使其发挥作用。我得到的错误是

  

引起:java.util.concurrent.CompletionException:javax.ws.rs.ProcessingException:com.fasterxml.jackson.databind.JsonMappingException:找不到非具体Map类型的反序列化器[map type; class javax.json.JsonObject,[simple type,class java.lang.String] - > [simple type,class javax.json.JsonValue]]

1 个答案:

答案 0 :(得分:0)

问题在这一行错误中定义:

Can not find a deserializer for non-concrete Map type

更快的杰克逊不知道用于场地值的具体类别。

将其替换为Map,并使用具体的MapHashmap在构造函数中初始化值。