全局定制序列化

作用:将返回实体类中的属性如果为null 变成""

复制代码
package com.example.micrweb.config;

import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializerProvider;
import org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.io.IOException;

/**
 * @author hrui
 * @date 2023/11/23 3:00
 */
@Configuration
public class JacksonConfiguration {

    /**
     * 将返回值json格式化的时候,如果为null 变成""
     * 因SpringBoot 返回默认用jackjson格式化
     * 而jackson中JacksonAutoConfiguration
     * 类已经自动配置了一个 ObjectMapper Bean
     * 这里对ObjectMapper重新定义
     */
    @Bean
    public ObjectMapper objectMapper(){
        ObjectMapper objectMapper=new ObjectMapper();
        //设置null序列化时  为""
        objectMapper.getSerializerProvider()
                .setNullValueSerializer(new JsonSerializer<Object>() {
                    @Override
                    public void serialize(Object o, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
                        jsonGenerator.writeString("");
                    }
                });
        return objectMapper;
    }
    //JacksonAutoConfiguration
}

例如

配置之后

相关推荐
一颗星星辰1 分钟前
C语言 | 第十章 | 函数 作用域
c语言·开发语言
lxp1997412 分钟前
php函数积累
开发语言·php
科技资讯早知道6 分钟前
java计算机毕设课设—坦克大战游戏
java·开发语言·游戏·毕业设计·课程设计·毕设
白拾17 分钟前
使用Conda管理python环境的指南
开发语言·python·conda
从0至143 分钟前
力扣刷题 | 两数之和
c语言·开发语言
总裁余(余登武)43 分钟前
算法竞赛(Python)-万变中的不变“随机算法”
开发语言·python·算法
NormalConfidence_Man44 分钟前
C++新特性汇总
开发语言·c++
苹果醋31 小时前
快速玩转 Mixtral 8x7B MOE大模型!阿里云机器学习 PAI 推出最佳实践
spring boot·nginx·毕业设计·layui·课程设计
程序员大金1 小时前
基于SpringBoot+Vue+MySQL的装修公司管理系统
vue.js·spring boot·mysql
一个闪现必杀技1 小时前
Python练习2
开发语言·python