将嵌套的json与jackson映射到java字段

时间:2018-02-21 16:18:26

标签: java json spring spring-boot jackson

我有一个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?

1 个答案:

答案 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");
        }
    }