当发起一个请求时,响应的json数据包含太多null值(当前业务没用上的值)时,确实挺让人不爽的,所以就想办法把这些null值屏蔽,当有值的时候就显示出来。
定义一个全局GlobalConfig配置类:
@Configuration
public class GlobalConfig extends WebMvcConfigurationSupport {
/**
* 配置消息转换器。
* 这个方法用于设置应用中使用的HTTP消息转换器。它首先调用父类的同名方法来执行默认配置,然后添加一个特定的消息转换器到列表中。
*
* @param converters 一个包含所有HTTP消息转换器的列表。这个列表用于将HTTP请求和响应消息在客户端和服务器之间进行转换。
*/
@Override
protected void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
super.configureMessageConverters(converters);
converters.add(mappingJackson2HttpMessageConverter());
}
/**
* 创建并配置 MappingJackson2HttpMessageConverter 实例。
* 该方法不接受任何参数。
*
* @return MappingJackson2HttpMessageConverter 一个配置了特定序列化设置的实例,
* 用于将Java对象转换为JSON格式,特别配置了不因空bean而失败的序列化选项和只包含非空字段的设置。
*/
private MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter() {
ObjectMapper objectMapper = new ObjectMapper();
// 配置不因空的JavaBean而失败
objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
// 配置只包含非空字段
objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
return new MappingJackson2HttpMessageConverter(objectMapper);
}
}
重启项目,发送请求:
就会发现,多余的null值就不存在了。