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


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 相关文章推荐
SpringBoot项目中控制台日志的保存配置操作
Jun 18 Java/Android
eclipse创建项目没有dynamic web的解决方法
Jun 24 Java/Android
Springboot集成阿里云OSS上传文件系统教程
Jun 28 Java/Android
实体类或对象序列化时,忽略为空属性的操作
Jun 30 Java/Android
java解析XML详解
Jul 09 Java/Android
Java面试题冲刺第十九天--数据库(4)
Aug 07 Java/Android
Java生成日期时间存入Mysql数据库的实现方法
Mar 03 Java/Android
SpringBoot+Redis实现布隆过滤器的示例代码
Mar 17 Java/Android
mapstruct的用法之qualifiedByName示例详解
Apr 06 Java/Android
Spring Data JPA框架自定义Repository接口
Apr 28 Java/Android
MyBatis核心源码深度剖析SQL语句执行过程
May 20 Java/Android
java实现web实时消息推送的七种方案
Jul 23 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开发过程中常用函数收藏
2009/12/14 PHP
启用Csrf后POST数据时出现的400错误
2015/07/05 PHP
php实现图片缩略图的方法
2016/03/29 PHP
在IIS下安装PHP扩展的方法(超简单)
2017/04/10 PHP
javascript之函数直接量(function(){})()
2007/06/29 Javascript
基于jquery的放大镜效果
2012/05/30 Javascript
jQuery插件Tmpl的简单使用方法
2015/04/27 Javascript
javascript中的altKey 和 Event属性大全
2015/11/06 Javascript
jQuery简单实现提交数据出现loading进度条的方法
2016/03/29 Javascript
javascript中this指向详解
2016/04/23 Javascript
vuejs动态组件给子组件传递数据的方法详解
2016/09/09 Javascript
老生常谈combobox和combotree模糊查询
2017/04/17 Javascript
AngularJS实现根据不同条件显示不同控件
2017/04/20 Javascript
jQuery插件FusionCharts绘制的2D条状图效果【附demo源码】
2017/05/13 jQuery
微信小程序页面生命周期详解
2018/01/31 Javascript
使用Vue如何写一个双向数据绑定(面试常见)
2018/04/20 Javascript
Vue在页面右上角实现可悬浮/隐藏的系统菜单
2018/05/04 Javascript
关于TypeScript模块导入的那些事
2018/06/12 Javascript
vue项目打包部署_nginx代理访问方法详解
2018/09/20 Javascript
原生JS实现轮播图效果
2018/10/12 Javascript
python的Crypto模块实现AES加密实例代码
2018/01/22 Python
python logging重复记录日志问题的解决方法
2018/07/12 Python
Python常见数字运算操作实例小结
2019/03/22 Python
关于pytorch多GPU训练实例与性能对比分析
2019/08/19 Python
将数据集制作成VOC数据集格式的实例
2020/02/17 Python
EVE LOM英国官网:全世界最好的洁面膏
2017/10/30 全球购物
size?荷兰官方网站:英国高级运动鞋精品店
2020/07/24 全球购物
家乐福台湾线上购物网:Carrefour台湾
2020/09/15 全球购物
一套.net面试题及答案
2016/11/02 面试题
大学校运会广播稿
2014/02/03 职场文书
五型班组建设方案
2014/02/10 职场文书
水电维修专业推荐信
2014/09/06 职场文书
民事二审代理词
2015/05/25 职场文书
教师师德工作总结2015
2015/07/22 职场文书
如何在CSS中绘制曲线图形及展示动画
2021/05/24 HTML / CSS
MySQL如何使用使用Xtrabackup进行备份和恢复
2021/06/21 MySQL