全局定制序列化

作用:将返回实体类中的属性如果为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
}

例如

配置之后

相关推荐
爱读源码的大都督4 分钟前
挑战一下,用Java手写Transformer,先手写QKV,能成功吗?
java·后端·程序员
华仔啊6 分钟前
面试官灵魂拷问:count(1)、count(*)、count(列)到底差在哪?MySQL 性能翻车现场
java·后端
用户0332126663679 分钟前
在Word 中插入页眉页脚:实用 Java 指南
java
奔跑吧邓邓子11 分钟前
【Java实战㊱】Spring Boot邂逅Redis:缓存加速的奇妙之旅
java·spring boot·redis·缓存·实战
杨杨杨大侠13 分钟前
Atlas-Event:高性能事件处理与监控系统
java·github·eventbus
杨杨杨大侠15 分钟前
Atlas Event:解锁事件驱动的潜能
java·github·eventbus
ForteScarlet18 分钟前
Kotlin 2.2.20 现已发布!下个版本的特性抢先看!
android·开发语言·kotlin·jetbrains
失散1320 分钟前
分布式专题——4 大厂生产级Redis高并发分布式锁实战
java·redis·分布式·缓存·架构
MacroZheng23 分钟前
堪称一站式管理平台,同时支持Linux、MySQL、Redis、MongoDB可视化管理!
java·linux·后端
anlogic27 分钟前
Java基础 9.10
java·开发语言·算法