SpringBoot项目请求返回json空字段过滤

news2025/1/11 21:02:16

接口返回的json中有的字段可能是为空的,我们不希望他为空的还返回,如下例子:

在这里插入图片描述
解决方案:只需要加一个配置类就行:

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

import java.nio.charset.StandardCharsets;
import java.util.List;

/**
 * @author 咕噜科
 * ClassName: JsonRespConfiguration
 * date: 2023-08-20 19:28
 * Description: 用于配置 JSON 数据的序列化和反序列化。
 * version 1.0
 */
@Configuration
public class JsonRespConfiguration implements WebMvcConfigurer {

    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        converters.add(mappingJackson2HttpMessageConverter());
    }

    @Bean
    public MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter(){
        // 通过该方法对mapper对象进行设置,所有序列化的对象都将按改规则进行系列化
        MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();

        ObjectMapper objectMapper = new ObjectMapper();
        //允许有未知字段映射不上
        objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
        //过滤response的空值
        // Include.Include.ALWAYS 默认
        // Include.NON_DEFAULT 属性为默认值不序列化
        // Include.NON_EMPTY 属性为 空("") 或者为 NULL 都不序列化,则返回的json是没有这个字段的。
        // Include.NON_NULL 属性为NULL 不序列化,就是为null的字段不参加序列化
        objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
        converter.setDefaultCharset(StandardCharsets.UTF_8);
        converter.setObjectMapper(objectMapper);
        return converter;
    }
}

重新启动后,再看结果,null值的字段已经没返回了:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2131367.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【每日刷题】Day120

【每日刷题】Day120 &#x1f955;个人主页&#xff1a;开敲&#x1f349; &#x1f525;所属专栏&#xff1a;每日刷题&#x1f34d; &#x1f33c;文章目录&#x1f33c; 1. 413. 等差数列划分 - 力扣&#xff08;LeetCode&#xff09; 2. 978. 最长湍流子数组 - 力扣&…

知识图谱增强在 360 文档知识问答及管理中的应用实践

主要内容包括以下几大部分&#xff1a; 360 文档云知识管理/问答应用场景 KG 在文档 RAG 问答中的应用 KG 在文档标准化、层次化、结构化应用 KG 与 LLM 在文档场景下的挑战及展望 问答环节 01 360 文档云知识管理/问答应用场景 首先来介绍一下 360 文档云知识管理问答的…

K1计划100%收购 MariaDB; TDSQL成为腾讯云核心战略产品; Oracle@AWS/Google/Azure发布

重要更新 1. 腾讯全球数字生态大会与9月5日-6日举行&#xff0c;发布“5T”战略&#xff0c;包括TDSQL、TencentOS、TCE&#xff08;专有云 &#xff09;、TBDS&#xff08;大数据&#xff09;、TI &#xff08;人工智能开发平台&#xff09;等 ( [2] ) ; 并正式向原子开源基金…

【无人机设计与控制】基于PID控制的四旋翼无人机系统Matlab仿真

摘要 本文基于PID控制设计了一种四旋翼无人机控制系统&#xff0c;并通过Matlab进行仿真验证。研究了姿态控制和位置控制的性能&#xff0c;仿真结果表明该系统在稳定性和响应速度方面具有良好的表现。本文的主要贡献是验证了PID控制器在多轴飞行器控制中的有效性&#xff0c;…

基于mongodb+flask(Python)+vue的实验室器材管理系统

实验室器材管理系统是一个现代化的、高度集成的软件解决方案&#xff0c;它结合了Flask作为后端框架&#xff0c;MongoDB作为数据库&#xff0c;以及Vue.js作为前端用户界面&#xff0c;专为优化和精简实验室设备及耗材的管理流程而设计。此系统旨在为实验室管理员、研究人员和…

3.C++入门(内联函数,c++11,auto,范围for,nullptr)

⭐本篇文章为C学习的第三篇&#xff1a;主要了解内联函数和部分c11新特性 ⭐本人c代码的Gitee仓库&#xff1a;c学习 橘子真甜/yzc的c学习 - 码云 - 开源中国 (gitee.com) 一. 内联函数 以inline修饰的函数称为内联函数&#xff0c;编译的时候c编译器会在内联函数的地方展开&a…

AI 平台 formulabot 介绍

AI 平台 formulabot 介绍 FormulaBot.com 是一个基于人工智能的数据分析平台&#xff0c;旨在简化数据处理和分析任务 主要功能 数据分析与可视化: Formula Bot 提供工具来分析、可视化和转换数据&#xff0c;使用户能够快速理解数据背后的信息。公式生成: 用户可以通过自然…

别再过度复杂化了,实体SEO其实就是SEO

“实体SEO”。听起来有点可怕&#xff0c;是不是&#xff1f;不仅“实体”这个词听起来有点陌生&#xff0c;还感觉又是要在你永无止境的SEO待办清单上再添加一项。你在SEO方面已经捉襟见肘了&#xff0c;但天啊&#xff0c;又有一个新事物需要你投入稀缺的资源。 不过我有好消…

springboot-创建连接池

操作数据库 代码开发步骤&#xff1a; pom.xml文件配置依赖properties文件配置连接数据库信息&#xff08;连接池用的是HikariDataSource&#xff09;数据库连接池开发 configurationproperties和value注解从properties文件中取值bean方法开发 service层代码操作数据库 步骤&am…

component 和slot -----vue3

前言: 辗转几个公司发现基本上有点规模的公司都会有自己的平台,无论是开发平台还是其他什么,都脱离不了一个功能点,那就是组件;无论你是自己从0到1建立的平台还是基于别的已有的平台,都是这样;无非是组件的套娃,只要你梳理清楚平台的主要枝干,熟悉一些前端基本知识,然后掌握组件…

2024年CAD图纸加密软件大盘点:10款高效CAD加密工具大揭秘!

在当今数字化时代&#xff0c;CAD图纸的安全性变得尤为重要。随着设计数据的不断增长&#xff0c;保护这些敏感信息免受未经授权的访问和泄露已成为企业必须面对的挑战。为了应对这一需求&#xff0c;市场上涌现了众多CAD图纸加密软件。本文将为您盘点2024年最值得关注的10款高…

OpenAI 的 o1 大模型在数学和编码方面有了几乎 10 倍的能力提升!

你有没有想过,有一天人工智能可以在数学和编程这两个领域里,真正成为人类的“得力助手”,甚至是超越我们?最近,OpenAI 发布的 o1大模型在这方面取得了几乎 10 倍的能力提升。10 倍!你没有看错。这样的进步让人不禁怀疑:AI 真的能做到“秒懂”数学和编程吗?今天,我们就…

骨传导耳机品牌排行榜前五名,有哪些好用的骨传导耳机品牌值得入手?

我是一名专业的数码产品测评博主&#xff0c;在多年的职业生涯中&#xff0c;发现很多人在使用骨传导耳机后都出现了佩戴不舒服的现象。对此&#xff0c;我希望大家能重视骨传导耳机款式的挑选&#xff0c;因为市面上不专业的产品数量众多&#xff0c;它们纷纷打着保护听力的旗…

【Python爬虫系列】_019.生产者和消费者模型

课 程 推 荐我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈虚 拟 环 境 搭 建 :👉👉 Python项目虚拟环境(超详细讲解) 👈👈PyQt5 系 列 教 程:👉👉 Python

服务器数据恢复—Linux操作系统环境下网站数据的恢复案例

服务器数据恢复环境&#xff1a; 一台linux操作系统服务器上跑了几十个网站&#xff0c;服务器上只有一块SATA硬盘。 服务器故障&#xff1a; 服务器突然宕机&#xff0c;尝试再次启动失败。将硬盘拆下检测&#xff0c;发现存在坏扇区。找当地一家数据恢复公司处理后&#xff…

Application pool xxx has been disabled

现象&#xff1a; 项目采用分布式应用&#xff0c;总共三台服务器&#xff0c;第一台的某个应用无法访问报错Error: Service Layer is under maintenance&#xff0c;第二三台可以正常访问 问题排查&#xff1a; 通过排查ETW&#xff08;无任何报错&#xff09;和EventLog发现…

一款免费试用的答题小程序

一款可以免费试用的答题PK小程序。适用于各类知识竞赛答题活动。如网络安全知识竞赛、安全生产知识竞赛、交通知识竞赛答题、企业文化学习答题等。 其功答题功能丰富多彩&#xff0c;除了个人学习答题外&#xff0c;还有好友PK答题、排位升级PK答题、专题1V1pk答题、团队多人…

Android Framework(五)WMS-窗口显示流程——窗口布局与绘制显示

文章目录 relayoutWindow流程概览应用端处理——ViewRootImpl::setView -> relayoutWindowViewRootImpl::setViewViewRootImpl::performTraversalsViewRootImpl::relayoutWindow Surface的创建WindowManagerService::relayoutWindow了解容器类型和Buff类型的SurfaceBuff类型…

为什么要引入lims系统?第三方检测实验室lims系统的好处

第三方检测机构面临多样化的管理和数据处理问题&#xff0c;实验室信息管理系统(LIMS)成为了提升效率和准确性的关键工具。本文将探讨第三方检测机构为什么要引进LIMS系统&#xff0c;并详细介绍白码LIMS系统的优势及应用案例&#xff0c;帮助各类检测机构解决实际难题。 白码…

低代码平台与AI融合:企业如何快速实现数字化转型?

引言&#xff1a;数字化转型的迫切性 在当今高度竞争的市场环境中&#xff0c;数字化转型已成为企业生存与发展的关键因素。无论是中小型企业&#xff0c;还是跨国巨头&#xff0c;都面临着相似的挑战&#xff1a;如何在信息技术飞速发展的背景下&#xff0c;快速适应市场变化&…