問題背景:
對象結構:
public class Result<T> {
private int code;
private String msg;
private String errMsg;
private T data;
}
后台應該返回結果:
{
"code": 200,
"msg": "ok",
"errMsg": ""
}
問題沖突:
后台實際返回結果:
{
"code": 200,
"msg": "ok",
"errMsg": "",
"data": null
}
問題解決方案:
@Configuration
public class JSONConfig {
@Bean
public MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter(){
ObjectMapper objectMapper = new ObjectMapper();
//設置過濾掉null值得屬性.
objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
return new MappingJackson2HttpMessageConverter(objectMapper);
}
}
問題總結:
默認情況下,MappingJackson2HttpMessageConverter 不會過濾掉null值,需要手動設置SerializationInclusion屬性為JsonInclude.Include.NON_NULL.