Springboot后端数据返回前端时,不返回null的字段

后端数据返回前端时,不返回null的字段_为null不返回-CSDN博客

前端调用某接口,返回的是一个 pojo,里面有些字段可能为null。null的字段,就不返回给前端了。
比如返回了User,里面只有一个account有值,其他都为null。那么在返回的时候,只返回account即可。

方式一:application上加配置

只需要在配置文件application上,增加spring.jackson.default-property-inclusion=non_null配置。

方式二:实体类上加配置

方式1其实有一定的局限性。如果项目里继承了WebMvcConfigurationSupport,那么方式1配置就失效了。

这种情况下,可以在实体类上加上 @JsonInclude(JsonInclude.Include.NON_NULL) 注解。

方式三:config全局配置

方式2虽然能达到效果,但是每个实体类上都加注解,实在费劲。

因此,可以在继承了WebMvcConfigurationSupport的类上,进行全局配置。

配置如下:

// JsonInclude全局配置
@JsonInclude(JsonInclude.Include.NON_NULL)
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
    Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder()
            .serializationInclusion(JsonInclude.Include.NON_NULL);
    converters.add(new MappingJackson2HttpMessageConverter(builder.build()));
}

如下图所示

或者第二种配置方式

如果使用第二种配置方式还需要加上@EnableWebMvc才能生效。