SpringBoot2.0 自定义Json序列化规则(忽略value为null的key序列化)

本文介绍如何在SpringBoot 2.0中通过配置ObjectMapper来排除JSON序列化时value为null的字段,以此减少接口响应数据的大小,降低带宽消耗。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近公司项目重构,发现接口返回的json数据中存在有value值为null 的key,这些应该被视为废数据,不应该输出给前端占用带宽,于是去修改json序列化的方式,在spring中我们都知道去xml配置文件中加一行配置或者在输出模型上加一@JsonInclude(JsonInclude.Include.NON_NULL) 注解,但是在SpringBoot2.0中是没有该注解和xml的配置文件,有关SpringBoot2.0 Json序列化的网上资料也是少的可怜,后面经过查阅SpringBoot2.0.4的文档发现该如下配置:
这里写图片描述
前提要引入spring-boot-starter-web依赖,所以编写如下代码

@JsonComponent
public class JsonSerializerManage {

    @Bean
    @ConditionalOnMissingBean
    public ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder) {
        ObjectMapper objectMapper = builder.createXmlMapper(false).build();
        //设置序列化规则,不能允许为空,当value为null时,key不进行序列化
        objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);

        //objectMapper.setSerializerFactory()  根据需求可以自定义序列化工厂和提供者
        //objectMapper.setSerializerProvider()
        return objectMapper;
    }

或者在application.yml配置文件中加一句配置

spring:
  jackson:
    default-property-inclusion: non_null

这样就可以搞定接口返回的数据中不含value为null的key,减少带宽占用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值