SpringBoot项目中 空值全局处理

       当我们在进行项目的时候,当我们向一个接口发送请求的时候,往往会传进去很多的参数,会出现部分参数是null的情况。下面我给大家举个例子!

      这是未处理的情况下!当我们发送一个请求以后,响应回来的数据如下!

我们会发现响应回来的json数据有许多的null。这样前端拿到的数据会很头疼,而且自己看着也难受。

那么我们如何避免这种情况呢? 下面我来给大家演示一下解决方法!

首先我我们先定义一个全局处理的配置类

注意一定要加@Configuration 注解

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;

import java.util.List;

/**
 * mvc的全局处理
 */
@Configuration
public class GlobalConfig extends WebMvcConfigurationSupport {
    @Override
    protected void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        super.configureMessageConverters(converters);
        converters.add(mappingJackson2HttpMessageConverter());
    }
    private MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter(){
        ObjectMapper objectMapper=new ObjectMapper();
        objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS,false);
        //把所有null都隐藏掉
        objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
        MappingJackson2HttpMessageConverter converter=new MappingJackson2HttpMessageConverter(objectMapper);
        return converter;
    }


}

在如上代码中 

ObjectMapper通常是指Jackson库中的一个类,它用于在Java对象(POJO,Plain Old Java Objects)和JSON之间进行相互转换。Jackson是一个流行的Java库,用于处理JSON数据,其中ObjectMapper是其核心类之一。

使用ObjectMapper,你可以将Java对象序列化为JSON字符串(称为"写入"或"序列化"),也可以将JSON字符串反序列化为Java对象(称为"读取"或"反序列化")。这对于在Java应用程序中处理JSON数据非常有用,例如在与Web服务通信时,或者在持久化数据时将Java对象转换为JSON格式。

我们只需要调用objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);,就会解决以上的问题。

然后我们再启动SpringBoot项目,发送请求,响应回来的数据如下:


是不是感觉更加简洁了!

希望大家多多关注我,我会持续更新Spring Boot项目中的干货,有什么不足的欢迎评论区留言和私信留言!第一时间回复,关注我 送Java学习资料以及干货!!!

  • 10
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值