问题背景:
对象结构:
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.