SpringBoot使用Jackson序列化时将null转成空字符串

SpringBoot配置返回数据不存在null 最近在做项目中遇到一个神奇的问题,在测试返回银行三级数据的时候有的项目中返回的数据中把null值的数据返回了,而有的时候就不存在null值数据,如下所示:存在null值情况不含null值情况。 阅读详情

简介

大家知道很多情况下,我们的API中数据交换都用JSON数据,这种数据格式简单、易读写、且轻量。在SpringBoot中默认使用jackson帮助我们进行序列化与反序列化的操作。

在控制层将我们的对象序列化返回给前端时,有些字段为null,序列化后的值也是null,如果前端直接展示的话,对用户不够友好,这里我们可以对jackson稍加修改,将值为null的转换成空字符串""。

使用

只要在配置类中加入如下自定义的转换器即可:

@Bean
public MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter(ObjectMapper objectMapper){
    objectMapper.getSerializerProvider().setNullValueSerializer(new JsonSerializer<Object>() {
        @Override
        public void serialize(Object param, JsonGenerator jsonGenerator,
                              SerializerProvider paramSerializerProvider) throws IOException {
            jsonGenerator.writeString("");
        }
    });

    MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();
    mappingJackson2HttpMessageConverter.setObjectMapper(objectMapper);
    return mappingJackson2HttpMessageConverter;
}

可以看出,核心代码就是对ObjectMapper增加一个null值转换器(ObjectMapper是JSON操作的核心,Jackson的所有JSON操作都是在ObjectMapper中实现的)。

这里我是使用注入的ObjectMapper,也可以直接自定义一个ObjectMapper的Bean配置来代替上边的配置,不过这样就用不了SpringBoot自动配置的一些东西了。

效果:

在这里插入图片描述
在这里插入图片描述

另:
此外,jackson还支持字段为空时不序列化此字段,通过@JsonInclude以及@JsonSerialize注解都可以实现,这里就不详细介绍了

Springboot中解析JSON字符串(jackson库ObjectMapper解析JSON字符串) springboot中通过jackson库中的objectmapper对象实现,对象和JSON相互转化,List集合JSON相互转化,Map和JSON相互转化 阅读详情

相关推荐

RC滤波电路工作原理:【带图+公式计算】

容抗Xc和电容C成反比,和频率f也成反比,C越大,交流电容易通过电容,说明电容量大,电容的阻碍作用小;交流电的频率高,交流电也容易通过电容,说明频率高,电容的阻碍作用也小。我们可以看到,一个2V的纹波,经常RC电路后,幅值下降到mv级别,基本可以忽略不计,这就是RC滤波电路的工作原理。一个频率为1Khz的信号,通过一个容值为0.1uf的电容,计算电容对该信号产生的阻抗。将RC滤波器电路中的电阻,取值为1KΩ,电容取值为0.47uf,纹波幅值为2V。从公式1可以看到,Xc越大,Vout值就越接近Vin的值。

weixin_66299220的博客 2万+

SpringBoot业务开发 04、Springboot统一处理null为空字符串

文章目录前言一、Jackson方式实现对null字段转为空字符串(springboot自带jackson)二、fastjson方式实现测试参考文章 前言 本篇博客是SpringBoot统一处理null转为空,若文章中出现相关问题,请指出! 所有博客文件目录索引:博客目录索引(持续更新) 一、Jackson方式实现对null字段转为空字符串(springboot自带jackson) springboot自带jackson,所以不需要额外引入坐标: 编写配置类:我的理解是实例化ObjectMapper对象交由s

每个人都是独一无二的,把握好自己的节奏,跟着自己的心走。 4517

遥感新手别纠结!实测ENVI 5.3、5.6、6.0三个免费版,教你混搭安装避坑

本文为遥感新手提供ENVI 5.3、5.6、6.0三个免费版的实测对比与混搭安装指南,帮助用户构建零成本高效工作流。详细解析各版本功能差异、共存安装技巧及常见问题解决方案,特别适合课程作业、毕业论文分析和遥感入门练习。

weixin_30819085的博客 471

spring boot 返回json字符串 null值转空字符串

import java.io.IOException; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.context.annotation.Bean; import org.springframework.cont

weixin_39768048的博客 1897

算法笔记(胡凡)学习笔记@Kaysen

本文旨在记录算法笔记学习过程中的收获和一些知识点,部分易错知识点只针对个人而言,CCF-CSP考试冲鸭!!! Chapter 2 C/C++快速入门(易错知识点) 2.1 基本数据类型 变量定义注意区分大小写。 一、整型 整型int,32bit(4Byte),取值范围是,绝对值在范围内的整数都可以定义成int。 长整型long long,64bit(8Byte),取值范围是,绝对值超过的整数就需要用long long存储。 ...

Kaysen_Zhao的博客 2896

Pascal Context数据集实战:从安装到格式转换的完整指南

本文提供了Pascal Context数据集的完整实战指南,从安装配置到格式转换的详细步骤。Pascal Context是计算机视觉领域重要的语义分割数据集,包含540个精细标注类别。文章涵盖数据集下载、环境配置、预处理技巧和常见问题解决方案,帮助开发者高效利用这一数据集进行场景理解任务。

weixin_30216561的博客 616

Jackson序列化json时null转成空串或空对象

Jackson序列化json时null转成空串或空对象;ObjectMapper序列化json时null转成空串或空对象

zzchances的博客 2964

【ESP32-IDF笔记】20-配置以太网网络(W5500)

基于ESP32IDF和官方的ethernet驱动,配置W5500以太网驱动芯片,实现ESP32的有线网络

别看了,就这些信息 3471

jackson设置返回null为空字符串

1、将接口返回的字段为null的设置为空字符串: import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml...

程序员青戈 8629

制造业与工业知识图谱应用

在全球数字化转型背景下,制造业面临创新周期缩短、质量管控精细化等挑战。知识图谱技术通过结构化表示工业知识,为智能制造提供关键技术支撑。工业知识图谱具有专业性强、多源异构数据融合、实时性要求高等特点,其构建流程涵盖本体设计、知识抽取与整合等环节。研究显示,知识图谱与大模型结合可提升工业场景的智能化水平,在设备故障诊断、供应链优化等领域具有显著应用价值。该技术有望成为制造业数字化转型的核心驱动力。

分享一些感兴趣的技术方面 1435

ArcGIS Pro 3.4 二次开发 - 布局

本文介绍了在ArcGIS Pro SDK 3.4和.NET 8环境下操作布局工程项的相关方法。主要内容包括:引用布局工程项和关联布局,在新视图中打开或激活已有布局视图,引用活动布局视图,导入/移除布局工程项,创建基本布局或带参考线的自定义布局,修改布局页面尺寸,以及创建圆形图形元素等操作。重点演示了如何通过CIM(Core Infrastructure Model)进行高级布局配置,并详细说明了圆形图形元素的创建过程,包括几何构建、符号设置和图形生成。所有涉及UI线程的操作都遵循ArcGIS Pro SDK

Winemonk 795

SpringBoot中Jackson返回null处理,字符串类型转空串,数组集合转[],对象转{}

文章目录1.自定义null值序列化处理器2.序列化程序修改器3.配置Jackson实体 SpringBoot框架返回Json数据中null值处理,将字符串类型null值转换为"",将集合数组类型null值转换为[],将原始数据类型null值转换为0,将布尔类型null值转换为false,将实体对象null值转换为{}。 1.自定义null值序列化处理器 import com.fasterxml.j...

Life is for sharing的博客 9510

STM32开发 -- LIS3DH三轴加速度计开发详解

这次要讲一下LIS3DH三轴加速度计的开发使用,之前是有讲过 MPU6050开发 的,但当时是在Linux下做的。额,还是个半成品,哈哈。现在手边有STM32的开发板,可以实实在在的来实现以下卡尔曼滤波了。 一、LIS3DH初识 依照惯例,先看一下手册,大致先了解一下,LIS3DH是什么模块。 下载:LIS3DH datasheet 1、描述 LIS3DH是一款超低功耗高性能三轴线性加速度计,属于...

不积跬步,无以至千里 2万+

SpringBoot Jackson 将null转字符串"" ,List、Array转[],Int转0

import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.BeanDescription; import com.fasterxml.jackson.databi...

星光的博客 8128

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

SpringBoot使用Jackson对空值处理,null转空串"",List、Array转[],Int转0

转自:super-star丶 SpringBoot项目,对Json的空值处理 springboot项目对返回值null的处理,本篇是使用springboot默认的Jackson的处理方法, 使用fastjson的处理方法请看:https://blog.youkuaiyun.com/qq_31183727/article/details/88890999 由于使用fastjson时,对多态的支持不好,所...

流水随清风的博客 8961

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Springboot使用jackson或fastjson时过滤null值

Springboot使用jackson或fastjson时过滤null值Jackson全局过滤null值方法一:使用yml配置方式方法二:使用Bean注入方式配置方法三:重写WebMvcConfigurer的configureMessageConvertersFastJson全局过滤null值方法一:实现WebMvcConfigurer方法二:继承WebMvcConfigurationSupport Jackson全局过滤null值 方法一:使用yml配置方式 spring: jackson:

zhowyunfat的博客 6206

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Jackson反序列化将空字符串转为null

在前端通过json格式传递参数,后端使用@RequestBody方式接收参数的场景下,经常需要将空字符串转换成null,以避免进行冗余的逻辑处理。

u014317046的博客 1万+

springboot中jackson 转json时null转为空字符串和空数组

使用springboot进行Rest开发,前端要求返回json中null值转为空字符串,数组转为空数组,参考网上资料和翻源码,自定义nullValueSerializer的方法实现,通过反射获取类型判断是字符串还是数组,当然有需要可以扩展更多类型 自定义ObjectMapper import com.fasterxml.jackson.core.JsonGenerator; import ...

javakeffer的专栏 1万+

SpringBoot使用Jackson 序列化小妙招

SpringBoot默认使用Jackson进行json数据的序列化,在这个过程中总会有些奇奇怪怪的需求,对于这些小需求要么增加一堆配置类,要么重写方法,其实都有点杀鸡用牛到了,那么我来列举下日常开发中这些小需求如何通过配置的形式解决。

118路司机的博客 1381

springboot的自带序列化jackson的使用 对不同类型的null字段进行设置指定值

JackSon是解析JSON和XML的一个框架,优点是简单易用,性能较高。 SpringBoot使用Jackson序列化时将null转成空字符串 简介 大家知道很多情况下,我们的API中数据交换都用JSON数据,这种数据格式简单、易读写、且轻量。在SpringBoot中默认使用jackson帮助我们进行序列化与反序列化的操作。 在控制层将我们的对象序列化返回给前端时,有些字段为null,序列化后的值也是null,如果前端直接展示的话,对用户不够友好,这里我们可以对jackson稍加修改,将值为null

Rallos的博客 3599

java设置空字符串字符串_jackson设置返回null为空字符串的操作

1、将接口返回的字段为null的设置为空字符串:import com.fasterxml.jackson.core.JsonGenerator;import com.fasterxml.jackson.databind.JsonSerializer;import com.fasterxml.jackson.databind.ObjectMapper;import com.fasterxml.jac...

weixin_42525385的博客 3247

springboot中的jackson配置及Jackson工具类分享

文章目录springboot中的Jackson配置Jackson工具类 springboot中的Jackson配置 spring: jackson: # 设置属性命名策略,对应jackson下PropertyNamingStrategy中的常量值,SNAKE_CASE-返回的json驼峰式转下划线,json body下划线传到后端自动转驼峰式 property-...

vampire_Violet的博客 3251

SpringBoot中对 JSON 值为Null 的处理

1 Jackson 中对 null 的处理 在实际项目中,我们难免会遇到一些 null 值。当我们转 JSON 时,不希望这些 null 出现,比如我们期望所有的 null 在转 JSON 时都变成“""”这种空字符串,那怎么做呢? 在 Spring Boot 中,我们做一下配置即可,新建一个 Jackson 的配置类: import com.fasterxml.jackson.core.Json...

. 5920

jackson在springboot中使用

完成时间转化和对null值的过滤是 Jackson 数据绑定库中的核心类,位于包中。它用于将 Java 对象与 JSON 数据之间进行转换。下面是序列化(Serialization): 将 Java 对象转换为 JSON 格式的字符串或其他 JSON 形式的数据结构。反序列化(Deserialization): 将 JSON 数据转换回 Java 对象。配置(Configuration): 提供了丰富的配置选项,以控制序列化和反序列化的行为。数据处理。

2301_79555009的博客 1112

springboot场景下jackson反序列化将空字符串转Null

springboot场景下jackson反序列化将空字符串转Null

高亮博客 2123
上一篇: Java 中几种获取文件路径的方式
下一篇: SpringBoot中@ControllerAdvice结合@InitBinder、@ModelAttribute、@ExceptionHandler的使用
淋雨一直走啊
博客等级 码龄11年 39粉丝 46原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值