我有一个rest端点,返回一个3级嵌套json,如下所示:
{
"user":{
"departament":{
"departInfo":{
"departName":"String"
}
}
}
}
我有一个没有相同3个嵌套级别的java类:
@JsonIgnorePropertires("ignoreUnknown = true")
class User(){
String departName
}
当我使用restTemplate进行休息呼叫时:
User response = restTemplate.exchange(url, HttpMethod.GET,
request, User.class)
jackson没有映射字段departName(因为它不是在我猜的同一嵌套级别),即使使用json ignore属性也是如此。
如何将此http json响应映射到我的java字段而忽略嵌套的父jsons?
答案 0 :(得分:3)
您必须通过方法和@JsonProperty
@JsonIgnorePropertires("ignoreUnknown = true")
class User(){
String departName;
@JsonProperty("department")
private void mapDepartmentName(Map<String,Object department) {
this.departName = ((Map<String,String>)department.get("departInfo")).get("departName");
}
}