反序列化javax.json.JsonObject
通过反序列化javax.json.JsonObject,java,json,rest,deserialization,json-deserialization,Java,Json,Rest,Deserialization,Json Deserialization,通过@使用的rest服务(MediaType.APPLICATION\uJSON)我得到了一个类似这样的JSON对象 { "key": "myKey", "value": { "port": 1234, "username": "JimmyTest5", "password": "password123", "host": "http://myurl.com", } } 在我的java代码中,我需要将此JSON插入到类中:
@使用的rest服务(MediaType.APPLICATION\uJSON)
我得到了一个类似这样的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 type;class javax.json.JsonObject,[simple type,class java.lang.String]->[simple type,class javax.json.JsonValue]]
此错误行定义了问题:
Can not find a deserializer for non-concrete Map type
我不知道该字段值使用哪个具体类
将其替换为
映射
,并使用具体的映射
初始化构造函数中的值,Hashmap
例如。创建一个自定义Pojo而不是执行JsonObject值我没有这个选项,因为JsonObject是强制性的。这就像一个符咒,但JsonObject类型在这种情况下是强制性的。@user3525227您可以创建一个实现JsonObject的自定义类,并将该类用作具体的JsonObject。