繁体   English   中英

杰克逊的JSON反序列化问题

[英]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.

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