全局定制序列化

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

例如

配置之后

相关推荐
Amumu121388 分钟前
React面向组件编程
开发语言·前端·javascript
有一个好名字9 分钟前
力扣-从字符串中移除星号
java·算法·leetcode
IT=>小脑虎9 分钟前
Python零基础衔接进阶知识点【详解版】
开发语言·人工智能·python
wjs202411 分钟前
C 标准库 - `<float.h>》详解
开发语言
计算机毕设VX:Fegn089512 分钟前
计算机毕业设计|基于springboot + vue二手家电管理系统(源码+数据库+文档)
vue.js·spring boot·后端·课程设计
zfj32118 分钟前
CyclicBarrier、CountDownLatch、Semaphore 各自的作用和用法区别
java·开发语言·countdownlatch·semaphore·cyclicbarrier
2501_9167665424 分钟前
【JVM】类的加载机制
java·jvm
Sag_ever25 分钟前
Java数组详解
java
张np26 分钟前
java基础-ConcurrentHashMap
java·开发语言
早日退休!!!27 分钟前
进程与线程的上下文加载_保存及内存映射
开发语言