@JsonIgnoreProperties转换实体时忽略json中不存在的字段

问题

在调用三方接口时,如果第三方接口的Respone突然多几个我们不需要的字段,而且我们接收的Response对应的类中没有添加这几个字段,这样就会导致我们的解析json失败。例如如下的错误

Caused by: org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: 
Unrecognized field "****" 
(class com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "***" )

解决办法

json转换成的实体类加注解@JsonIgnoreProperties(ignoreUnknown = true),注意这是类级别的注解。

  • @JsonIgnore注解用来忽略某些字段,可以用在Field或者Getter方法上,用在Setter方法时,和Filed效果一样。这个注解只能用在POJO存在的字段要忽略的情况,不能满足现在需要的情况。

  • @JsonIgnoreProperties(ignoreUnknown = true),将这个注解写在类上之后,就会忽略类中不存在的字段,可以满足当前的需要。这个注解还可以指定要忽略的字段。使用方法如下:

  • @JsonIgnoreProperties({ "name", "remark" })
    指定的字段不会被序列化和反序列化。

你可能感兴趣的:(@JsonIgnoreProperties转换实体时忽略json中不存在的字段)