全局定制序列化

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

例如

配置之后

相关推荐
web1368856587116 分钟前
rust教程 第一章 —— 初识rust
开发语言·后端·rust
songroom17 分钟前
Rust : tokio中select!
开发语言·后端·rust
dubochao_xinxi19 分钟前
QT5 在某些系统出现qt.qpa.xcb: could not connect
开发语言·qt
blueman888821 分钟前
QWidget应用封装为qt插件,供其他qt应用调用
开发语言·qt
qincjun22 分钟前
Qt仿音乐播放器:设置窗口、部件属性
开发语言·qt
编码小哥32 分钟前
C++线程同步和互斥
开发语言·c++
qincjun34 分钟前
Qt仿音乐播放器:动画类
开发语言·qt
P7进阶路34 分钟前
Spring Boot 中 RabbitMQ 的使用
spring boot·rabbitmq·java-rabbitmq
星辰@Sea36 分钟前
SpringBoot整合Canal+RabbitMQ监听数据变更
spring boot·rabbitmq·java-rabbitmq
L.S.V.43 分钟前
Java 溯本求源之基础(三十)——封装,继承与多态
java·开发语言