gpt4 book ai didi

java - Jackson 的 JSON 反序列化问题

转载 作者:行者123 更新时间:2023-11-30 03:42:29 25 4
gpt4 key购买 nike

我有一个像这样的 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”?

这可以使用 Jackson 注释来完成吗?

感谢您的帮助

最佳答案

我找到了这篇文章Binding JSON child object property into Java object field in Jackson这部分解决了我的问题。

我编写了两个 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 响应更容易接受。

关于java - Jackson 的 JSON 反序列化问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26510169/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com