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


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数据结构之链表相关知识总结
Jun 18 Java/Android
Java实现多线程聊天室
Jun 26 Java/Android
图解排序算法之希尔排序Java实现
Jun 26 Java/Android
Jackson 反序列化时实现大小写不敏感设置
Jun 29 Java/Android
Spring mvc是如何实现与数据库的前后端的连接操作的?
Jun 30 Java/Android
简述Java中throw-throws异常抛出
Aug 07 Java/Android
解析mybatis-plus中的resultMap简单使用
Nov 23 Java/Android
InterProcessMutex实现zookeeper分布式锁原理
Mar 21 Java/Android
springboot应用服务启动事件的监听实现
Apr 06 Java/Android
Android在Sqlite3中的应用及多线程使用数据库的建议
Apr 24 Java/Android
Java 写一个简单的图书管理系统
Apr 26 Java/Android
Spring Cloud OpenFeign模版化客户端
Jun 25 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
php结合表单实现一些简单功能的例子
2011/06/04 PHP
php提示Call-time pass-by-reference has been deprecated in的解决方法[已测]
2012/05/06 PHP
关于crontab的使用详解
2013/06/24 PHP
JS中Iframe之间传值及子页面与父页面应用
2013/03/11 Javascript
JS与C#编码解码
2013/12/03 Javascript
js利用数组length属性清空和截短数组的小例子
2014/01/15 Javascript
NodeJS制作爬虫全过程(续)
2014/12/22 NodeJs
jquery实现表格本地排序的方法
2015/03/11 Javascript
javascript中href和replace的比较(详解)
2016/11/25 Javascript
Vue系列:通过vue-router如何传递参数示例
2017/01/16 Javascript
jQuery给表格添加分页效果
2017/03/02 Javascript
详解vee-validate的使用个人小结
2017/06/07 Javascript
解决bootstrap下拉菜单点击立即隐藏bug的方法
2017/06/13 Javascript
Vue0.1的过滤代码如何添加到Vue2.0直接使用
2017/08/23 Javascript
Vue 后台管理类项目兼容IE9+的方法示例
2019/02/20 Javascript
微信小程序后端(java)开发流程的详细步骤
2019/11/13 Javascript
微信小程序用canvas画图并分享
2020/03/09 Javascript
js中!和!!的区别与用法
2020/05/09 Javascript
详解js创建对象的几种方式和对象方法
2021/03/01 Javascript
Python实现时钟显示效果思路详解
2018/04/11 Python
浅谈Python中的bs4基础
2018/10/21 Python
python批量创建指定名称的文件夹
2019/03/21 Python
python创建属于自己的单词词库 便于背单词
2019/07/30 Python
使用python代码进行身份证号校验的实现示例
2019/11/21 Python
PyCharm2019 安装和配置教程详解附激活码
2020/07/31 Python
Python GUI库Tkiner使用方法代码示例
2020/11/27 Python
人力资源管理专业应届生求职信
2013/09/28 职场文书
运动会广播稿400字
2014/01/25 职场文书
学生鉴定评语大全
2014/05/05 职场文书
毕业横幅标语
2014/10/08 职场文书
护理医院见习报告
2014/11/03 职场文书
神龙架导游词
2015/02/11 职场文书
简历自我评价优缺点
2015/03/11 职场文书
创业计划书之香辣虾火锅
2019/09/23 职场文书
纯html+css实现打字效果
2021/08/02 HTML / CSS
js前端图片加载异常兜底方案
2022/06/21 Javascript