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


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 11 Java/Android
Java常用函数式接口总结
Jun 29 Java/Android
每日六道java新手入门面试题,通往自由的道路
Jun 30 Java/Android
dubbo集成zipkin获取Traceid的实现
Jul 26 Java/Android
关于springboot配置druid数据源不生效问题(踩坑记)
Sep 25 Java/Android
springboot如何接收application/x-www-form-urlencoded类型的请求
Nov 02 Java/Android
SpringBoot2零基础到精通之异常处理与web原生组件注入
Mar 22 Java/Android
springboot读取nacos配置文件
May 20 Java/Android
Java中Dijkstra(迪杰斯特拉)算法
May 20 Java/Android
Java完整实现记事本代码
Jun 16 Java/Android
Java Spring Boot请求方式与请求映射过程分析
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学习教程之第1天
2008/06/15 PHP
解析thinkphp基本配置 convention.php
2013/06/18 PHP
PHP向浏览器输出内容的4个函数总结
2014/11/17 PHP
PHP答题类应用接口实例
2015/02/09 PHP
php图像处理类实例
2015/07/28 PHP
PHP中的输出echo、print、printf、sprintf、print_r和var_dump的示例代码
2020/12/01 PHP
PHP+Mysql分布式事务与解决方案深入理解
2021/02/27 PHP
jquery随意添加移除html的实现代码
2011/06/21 Javascript
js的Prototype属性解释及常用方法
2014/05/08 Javascript
关于JavaScript中name的意义冲突示例介绍
2014/05/29 Javascript
JavaScript动态修改弹出窗口大小的方法
2015/04/06 Javascript
JavaScript的Number对象的toString()方法
2015/12/18 Javascript
JS实现的系统调色板完整实例
2016/12/21 Javascript
写给vue新手们的vue渲染页面教程
2017/09/01 Javascript
解决vue js IOS H5focus无法自动弹出键盘的问题
2018/08/30 Javascript
在Vue项目中取消ESLint代码检测的步骤讲解
2019/01/27 Javascript
Python操作json数据的一个简单例子
2014/04/17 Python
关于Python元祖,列表,字典,集合的比较
2017/01/06 Python
Python实现PS滤镜的旋转模糊功能示例
2018/01/20 Python
基于python 处理中文路径的终极解决方法
2018/04/12 Python
python中PS 图像调整算法原理之亮度调整
2019/06/28 Python
Python 实现网课实时监控自动签到、打卡功能
2020/03/12 Python
Python 爬虫性能相关总结
2020/08/03 Python
Python实现自动整理文件的脚本
2020/12/17 Python
CSS3制作文字半透明倒影效果的两种实现方式
2014/08/08 HTML / CSS
2019年c语言经典面试题目
2016/08/17 面试题
WebSphere面试题:在WebSphere里面如何部署一个应用
2015/08/02 面试题
旅游与酒店管理的自我评价分享
2013/11/03 职场文书
优秀员工个人的自我评价
2013/11/29 职场文书
会计出纳员的自我评价
2014/01/15 职场文书
音乐教师求职信
2014/06/28 职场文书
计划生育证明格式及范本
2014/10/09 职场文书
同意迁入证明模板
2014/10/26 职场文书
教师党员个人自我评价
2015/03/04 职场文书
个人房屋租赁合同(标准范本)
2019/09/16 职场文书
python 使用pandas读取csv文件的方法
2022/12/24 Python