介绍
Jackson
将对象json化的时候,可能会出现许多属性的值为null。
解决方案
我们可以配置ObjectMapper
在序列化Java对象为JSON时,忽略值为null的属性。
ts
/**
* mvc的全局处理
*/
@Configuration
public class GlobalConfig extends WebMvcConfigurationSupport {
/**
* 通过继承WebMvcConfigurationSupport并重写configureMessageConverters方法,
* 实现了全局的HTTP消息转换器配置,简化了后续开发中对JSON处理的配置需求。
* @param converters
*/
@Override
protected void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
super.configureMessageConverters(converters);
//MappingJackson2HttpMessageConverter添加到Spring MVC的消息转换器列表中,
//确保在HTTP请求和响应中能够正确处理JSON数据。
converters.add(mappingJackson2HttpMessageConverter());
}
private MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter(){
ObjectMapper objectMapper = new ObjectMapper();
//ObjectMapper被配置为在序列化空对象时,
//不会抛出异常(FAIL_ON_EMPTY_BEANS设置为false),增强了系统的健壮性。
objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
//忽略所有待序列化对象的 Null 属性。
objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter(objectMapper);
converter.setObjectMapper(objectMapper);
return converter;
}
}