实体类或对象序列化时,忽略为空属性的操作


Posted in Java/Android onJune 30, 2021

第一种,在配置文件配置

在application.xml直接配置,这种方式是全局配置,所有返回给前端对象的属性为null或""都不进行序列化;

spring: 
  jackson:
    #实体类转json时字段为null不参与序列化
    default-property-inclusion: NON_EMPTY

default-property-inclusion 常用的4种类型

  • ALWAYS 默认
  • NON_DEFAULT 属性为默认值不序列化
  • NON_EMPTY 属性为 “” 或者为NULL都不序列化
  • NON_NULL 属性为NULL时不序列化

第二种,给每个类单独设置

给为空时需要忽略序列化的对象属性加 @JsonInclude(Include.NON_NULL),也可以直接加到类上,表示一整个对象的属性为null时都不参与序列化;

@JsonInclude 括号里面可以设置不同的类型

  • Include.Include.ALWAYS 默认
  • Include.NON_DEFAULT 属性为默认值不序列化
  • Include.NON_EMPTY 属性为 “” 或者为NULL都不序列化
  • Include.NON_NULL 属性为NULL时不序列化

如果配置了全局,又给某个对象进行注解方式的设置,注解方式会覆盖全局的设置。

SpringBoot2.x 不反回空值属性

由于有的时候我们返回的数据中存在属性没有值得情况,或者是属性的值为空白字符串,这会浪费网络流量,又或者是前端框架存在的bug会导致null值或者是空白字符串在渲染的时候会报错。

处理方式

第一种

全局的方式:在SpringBoot的配置文件中添加以下属性,即可达到全局过滤

spring.jackson.default-property-inclusion=non_empty

第二种

局部的方式:在返回的实体类属性或者是类名上添加以下注解,即可达到过滤效果

@JsonInclude(JsonInclude.Include.NON_EMPTY)

注意

这种方式对于空集合也是成立的。属性一共有如下值可选

  • Include.Include.ALWAYS 默认
  • Include.NON_DEFAULT 属性为默认值不序列化
  • Include.NON_EMPTY 属性为 空(“”) 或者为 NULL 都不序列化
  • Include.NON_NULL 属性为NULL 不序列化

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Java/Android 相关文章推荐
Java并发编程之Executor接口的使用
Jun 21 Java/Android
Java循环队列与非循环队列的区别总结
Jun 22 Java/Android
IDEA使用SpringAssistant插件创建SpringCloud项目
Jun 23 Java/Android
Springboot使用Spring Data JPA实现数据库操作
Jun 30 Java/Android
Java中多线程下载图片并压缩能提高效率吗
Jul 01 Java/Android
解决Swagger2返回map复杂结构不能解析的问题
Jul 02 Java/Android
Java生成读取条形码和二维码的简单示例
Jul 09 Java/Android
java设计模式--三种工厂模式详解
Jul 21 Java/Android
Java 超详细讲解数据结构中的堆的应用
Apr 02 Java/Android
Java的Object类的九种方法
Apr 13 Java/Android
Java中的Kotlin 内部类原理
Jun 16 Java/Android
Springboot集成kafka高级应用实战分享
Aug 14 Java/Android
Spring mvc是如何实现与数据库的前后端的连接操作的?
Jun 30 #Java/Android
HashMap实现保存两个key相同的数据
Jun 30 #Java/Android
spring boot项目application.properties文件存放及使用介绍
springboot项目以jar包运行的操作方法
Springboot使用Spring Data JPA实现数据库操作
Jun 30 #Java/Android
如何给HttpServletRequest增加消息头
解决ObjectMapper.convertValue() 遇到的一些问题
Jun 30 #Java/Android
You might like
2019年中国咖啡业现状与发展趋势
2021/03/04 咖啡文化
无数据库的详细域名查询程序PHP版(5)
2006/10/09 PHP
php.ini-dist 和 php.ini-recommended 的区别介绍(方便开发与安全的朋友)
2012/07/01 PHP
XP折叠菜单&仿QQ2006菜单
2006/12/16 Javascript
基于Jquery+Ajax+Json的高效分页实现代码
2011/10/29 Javascript
可恶的ie8提示缺少id未定义
2014/03/20 Javascript
NodeJS学习笔记之Connect中间件模块(一)
2015/01/27 NodeJs
javascript中createElement的两种创建方式
2015/05/14 Javascript
简述AngularJS的控制器的使用
2015/06/16 Javascript
jQuery Validate验证框架经典大全
2015/09/23 Javascript
ztree获取选中节点时不能进入可视区域出现BUG如何解决
2015/12/03 Javascript
JS封装通过className获取元素的函数示例
2016/12/20 Javascript
微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据(二)
2017/05/11 Javascript
vue2.0实现分页组件的实例代码
2017/06/22 Javascript
vue构建动态表单的方法示例
2018/09/22 Javascript
JS多个异步请求 按顺序执行next实现解析
2019/09/16 Javascript
深入浅析python继承问题
2016/05/29 Python
Python升级导致yum、pip报错的解决方法
2017/09/06 Python
python处理csv数据动态显示曲线实例代码
2018/01/23 Python
解决nohup执行python程序log文件写入不及时的问题
2019/01/14 Python
Python要求O(n)复杂度求无序列表中第K的大元素实例
2020/04/02 Python
python 实现一个图形界面的汇率计算器
2020/11/09 Python
Python 2.6.6升级到Python2.7.15的详细步骤
2020/12/14 Python
布里斯班女装时尚品牌:Adrift
2017/12/28 全球购物
瑞典廉价机票预订网站:Seat24
2018/06/19 全球购物
优秀的茶餐厅创业计划书
2014/01/03 职场文书
会计电算化大学生职业规划书
2014/02/05 职场文书
人力资源部门的主要职能
2014/02/22 职场文书
商场周年庆活动方案
2014/08/19 职场文书
软环境建设心得体会
2014/09/09 职场文书
社区务虚会发言材料
2014/10/20 职场文书
酒店财务部岗位职责
2015/04/14 职场文书
高中班主任培训心得体会
2016/01/07 职场文书
mysql批量新增和存储的方法实例
2021/04/07 MySQL
python如何在word中存储本地图片
2021/04/07 Python
Pytorch中的学习率衰减及其用法详解
2021/06/05 Python