簡體   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