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


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中的OPTIONAL
Jun 14 Java/Android
一篇文章带你复习java知识点
Jun 28 Java/Android
Java实现多文件上传功能
Jun 30 Java/Android
解决ObjectMapper.convertValue() 遇到的一些问题
Jun 30 Java/Android
Springboot使用Spring Data JPA实现数据库操作
Jun 30 Java/Android
Java并发编程必备之Future机制
Jun 30 Java/Android
新手初学Java List 接口
Jul 07 Java/Android
SpringRetry重试框架的具体使用
Jul 25 Java/Android
Spring依赖注入多种类型数据的示例代码
Mar 31 Java/Android
Java详细解析==和equals的区别
Apr 07 Java/Android
Android开发 使用文件储存的方式保存QQ密码
Apr 24 Java/Android
Android 界面一键变灰 深色主题工具类
Apr 28 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
JAVA/JSP学习系列之二
2006/10/09 PHP
PHP对象转换为数组函数(递归方法)
2012/02/04 PHP
destoon实现调用图文新闻的方法
2014/08/21 PHP
thinkPHP5框架设置404、403等http状态页面的方法
2018/06/05 PHP
PHP调用微博接口实现微博登录的方法示例
2018/09/22 PHP
超轻量级的基于jquery的三级展开列表
2011/04/26 Javascript
jQuery效果 slideToggle() 方法(在隐藏和显示之间切换)
2011/06/28 Javascript
jquery插件制作 手风琴Panel效果实现
2012/08/17 Javascript
javascript字符串替换及字符串分割示例代码
2013/12/12 Javascript
JS简单实现城市二级联动选择插件的方法
2015/08/19 Javascript
JavaScript 经典实例日常收集整理(常用经典)
2016/03/30 Javascript
关于JS中的apply,call,bind的深入解析
2016/04/05 Javascript
基于JQuery的$.ajax方法进行异步请求导致页面闪烁的解决办法
2016/05/10 Javascript
使用Bootstrap打造特色进度条效果
2017/05/02 Javascript
网页中的图片查看器viewjs使用方法
2017/07/11 Javascript
JS+HTML5 FileReader实现文件上传前本地预览功能
2020/03/27 Javascript
JavaScript Canvas编写炫彩的网页时钟
2019/10/16 Javascript
微信小程序复选框实现多选一功能过程解析
2020/02/14 Javascript
Postman动态获取返回值过程详解
2020/06/30 Javascript
vue实现动态表格提交参数动态生成控件的操作
2020/11/09 Javascript
Python实现冒泡,插入,选择排序简单实例
2014/08/18 Python
Python中用于返回绝对值的abs()方法
2015/05/14 Python
python笔记之mean()函数实现求取均值的功能代码
2019/07/05 Python
Python3 执行系统命令并获取实时回显功能
2019/07/09 Python
使用Python给头像戴上圣诞帽的图像操作过程解析
2019/09/20 Python
pycharm 设置项目的根目录教程
2020/02/12 Python
中国领先的专业家电网购平台:国美在线
2016/12/25 全球购物
关键字final的用法
2013/10/02 面试题
会计主管岗位职责范文
2013/11/08 职场文书
《十六年前的回忆》教学反思
2014/02/14 职场文书
小学优秀辅导员事迹材料
2014/05/11 职场文书
2014国庆节幼儿园亲子活动方案
2014/09/16 职场文书
党员群众路线个人整改措施思想汇报
2014/10/12 职场文书
夫妻双方自愿离婚协议书
2014/10/24 职场文书
给下属加薪申请报告
2015/05/15 职场文书
童年读书笔记
2015/06/26 职场文书