欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

springboot响应json null值过滤方式

程序员文章站 2022-06-30 20:19:39
目录springboot响应json null值过滤springboot处理返回json的null值1、新建配置类(jsonconfig.java)2、在启动类application中springbo...

springboot响应json null值过滤

spring:
  jackson:
    default-property-inclusion: non_null

只需要在application.yml中配置以上内容即可。

springboot处理返回json的null值

在后端数据接口项目开发中,经常遇到返回的数据中有null值,导致前端需要进行判断处理,否则容易出现undefined的情况,如何便捷的将null值转换为空字符串?

以springboot项目为例,ssm同理。

1、新建配置类(jsonconfig.java)

import com.fasterxml.jackson.core.jsongenerator;
import com.fasterxml.jackson.core.jsonprocessingexception;
import com.fasterxml.jackson.databind.jsonserializer;
import com.fasterxml.jackson.databind.objectmapper;
import com.fasterxml.jackson.databind.serializerprovider;
import org.springframework.boot.autoconfigure.condition.conditionalonmissingbean;
import org.springframework.context.annotation.bean;
import org.springframework.context.annotation.configuration;
import org.springframework.context.annotation.primary;
import org.springframework.http.converter.json.jackson2objectmapperbuilder;
import java.io.ioexception;
@configuration
public class jsonconfig {
    @bean
    @primary
    @conditionalonmissingbean(objectmapper.class)
    public objectmapper jacksonobjectmapper(jackson2objectmapperbuilder builder)
    {
        objectmapper objectmapper = builder.createxmlmapper(false).build();
        // 通过该方法对mapper对象进行设置,所有序列化的对象都将按改规则进行系列化
        // include.include.always 默认
        // include.non_default 属性为默认值不序列化
        // include.non_empty 属性为 空("") 或者为 null 都不序列化,则返回的json是没有这个字段的。这样对移动端会更省流量
        // include.non_null 属性为null 不序列化,就是为null的字段不参加序列化
        //objectmapper.setserializationinclusion(include.non_empty);
        // 字段保留,将null值转为""
        objectmapper.getserializerprovider().setnullvalueserializer(new jsonserializer<object>()
        {
            @override
            public void serialize(object o, jsongenerator jsongenerator,
                                  serializerprovider serializerprovider)
                    throws ioexception, jsonprocessingexception
            {
                jsongenerator.writestring("");
            }
        });
        return objectmapper;
    }
}

2、在启动类application中

记得添加scan注解,防止无法扫描到配置类。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。