[英]JSON deserialization issue with jackson
我有一个像这样的json对象
{
"id":23 ,
"key": "AKEY",
"description": {
"plain": {
"value": "This is an example",
"representation": "plain"
}
}
}
我想将其映射到该对象
public class JsonResponse {
private int id;
private String key;
private String name;
private String type;
private String description;
/*usual getters and setters*/
}
我像这样使用JSONSerialiser
JSONObject jsonObject = (JSONObject) JSONSerializer.toJSON(responseEntity);
但是,如何将“ description.plain.value”映射到“ JsonResponse.description”?
可以使用杰克逊注释来完成吗?
谢谢你的帮助
我发现这篇文章将JSON子对象属性绑定到Jackson的Java对象字段中 ,部分解决了我的问题。
我写了两个setDescription()方法,一个方法是我自己在代码中使用的,一个被jacskon调用
@JsonProperty(value = "description")
public void setDescription(Map<String, Map<String,String>> description) {
this.description = description.get("plain").get("value");
}
public void setDescription(String description) {
this.description = description;
}
看起来JsonProperty批注是使jackson使用正确的setter所必需的。
只要它是“短嵌套”属性,我仍然可以接受,但是我猜想Beri响应对于复杂的JSON响应更为可接受。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.