java如何使用Spring Boot RestTemplate解组json列表
我必须用json解析一个REST响应,它有很多嵌套列表和许多对象
响应包含一个名为“ObjectList”的项,它有一个列表,内部有两个元素,“ObjectA”和“ObjectB”。我不知道如何使用Jackson注释解析对对象的响应
json如下所示:
"ObjectList": [
{
"ObjectA": {
"property1": false,
"property2": true
},
"ObjectB": {
"property1": 66,
"property2": true
},
{
"ObjectA": {
"property1": false,
"property2": true
},
"ObjectB": {
"property1": 66,
"property2": true
}
}
]
}
我的代码如下所示
ResponseEntity<Response> response = restTemplate.exchange(URL, HttpMethod.GET, request, Response.class);
Response response = response.getBody();
答复是:
@JsonIgnoreProperties(ignoreUnknown = true)
public class TimesheetListResponse {
@JsonProperty("ObjectA")
private List<ObjectA> objectAList;
@JsonProperty("ObjectB")
private List<ObjectB> objectBList;
这根本不起作用,我对如何绘制这张地图感到困惑
# 1 楼答案
看起来映射很好,我只需要初始化Arraylist。主要问题是,由于我忘记了一个参数,端点返回空
# 2 楼答案
根据您的要求,模型结构可能如下所示。在响应对象中的objectList映射中,需要添加HashMap,其中键为“ObjectA”/“ObjectB”字符串,值为ObjectA/ObjectB实例。我把地图的值类型作为对象,这样任何对象类型A/B都可以放在那里。添加相应的@JsonXXX注释
# 3 楼答案
我也会考虑列表中的条目作为另一个包装对象,可以是对象A或对象B。即