这篇文章主要介绍了实体类或对象序列化时,忽略为空属性的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

第一种,在配置文件配置

在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 不序列化

以上为个人经验,希望能给大家一个参考。

简单介绍实体类或对象序列化时,忽略为空属性的操作相关推荐

  1. 实体类或对象序列化时,忽略为空属性

    第一种,在配置文件配置 在application.xml直接配置,这种方式是全局配置,所有返回给前端对象的属性为null或""都不进行序列化: spring: jackson:#实 ...

  2. Castor简单介绍实体类和xml互转

    本节摘要:本节主要介绍Castor插件的使用. https://www.cnblogs.com/java-pan/archive/2012/04/18/castor.html preparation ...

  3. 在一个电子商务网站应用中,涉及的实体信息类有很多,比如用户类User和用户地址类Address; 而每一个实体类的对象信息要存储到相应的数据库表中,如userTable和addressTable。

      在一个电子商务网站应用中,涉及的实体信息类有很多,比如用户类User和用户地址类Address; 而每一个实体类的对象信息要存储到相应的数据库表中,如userTable和addressTable. ...

  4. 类和对象运行时在内存里是怎么样的?各种变量、方法在运行时是怎么交互的?

    转载自   类和对象运行时在内存里是怎么样的?各种变量.方法在运行时是怎么交互的? 在回答这个问题之前先了解一下Java的一些基础知识. 我们知道Java程序运行在虚拟机环境里,那我们先看一下虚拟机的 ...

  5. c语言xml序列化,C# XML和实体类之间相互转换(序列化和反序列化)

    我们需要在XML与实体类,DataTable,List之间进行转换,下面是XmlUtil类,该类来自网络并稍加修改. using System; using System.Collections.Ge ...

  6. JAVA类与对象构造方法,java基础-1-面向对象(1)-概念介绍与类、对象、构造方法...

    -------android培训.java培训.期待与您交流! ---------- 什么叫做面向对象? 想要了解什么事面向对象,我们首先需要了解,什么是面向过程. 所谓的面向过程,指的是在编程期间, ...

  7. XML和实体类之间相互转换(序列化和反序列化)

    我们需要在XML与实体类,DataTable,List之间进行转换,下面是XmlUtil类,该类来自网络并稍加修改. using System; using System.Collections.Ge ...

  8. JPA 一对一设置无效,连表查询的时候另外一个实体类的对象值为空

    文章目录 1.前言 2.错误示例: 3.正确示例 4.讲解 1.前言 今天在使用 JPA 的时候发现了这样一个问题,User 表和 OrganInfo 表配置了一对一关系,连表查询的时候只能够查到表 ...

  9. java对象json序列化时忽略值为null的属性

    当一个对象里有些属性值为null 的不想参与json序列化时,可以添加如下注解复制代码 import com.fasterxml.jackson.annotation.JsonInclude; imp ...

最新文章

  1. 浅谈机器人产品落地全过程
  2. jupyter 共享_可共享的Jupyter笔记本!
  3. matlab损失函数出现nan,[译]在训练过程中loss出现NaN的原因以及可以采取的方法。...
  4. 虚拟机linux命令界面转,虚拟机-linux系统中图形界面和命令行界面切换
  5. jdk1.8新特性的应用-Stream Api
  6. avalon视频学习笔记(六)
  7. AtCoder Regular Contest 088
  8. 最新论文汇总:深度补全
  9. react 最佳入门_详解React-Todos入门例子
  10. 以5‰的概率计算一个网络准确率达到99.9%的时间和迭代次数---实例三分类mnist 3,4,5
  11. 洛谷P3398 仓鼠找suger
  12. linux openerp,openerp
  13. 测试管理工具的基本功能有哪些?
  14. Hudi-表的存储类型及比较
  15. 面向Python开发人员的综合置信区间全面理解
  16. 解决Apache/2.4.39 (Win64) PHP/7.2.18 Server at localhost Port 80问题
  17. K近邻(k-Nearest Neighbor,KNN)算法,一种基于实例的学习方法
  18. java毕业设计员工绩效考核系统分析与设计Mybatis+系统+数据库+调试部署
  19. 一座适合躺尸的低房价、慢节奏小城
  20. 设计模式之观察者模式 1

热门文章

  1. 如何看待179所高校新增 AI 本科专业,研究生扩招也瞄准 AI?
  2. 戴尔科技20.8亿美元出售旗下网络安全业务RSA
  3. 没有插件的 Chrome 是没有灵魂的
  4. 有一群少年班的好朋友是什么感觉?快快快快快快疯掉了!
  5. bottle嵌入html,css,js
  6. gossip协议与memberlist实现
  7. Django博客系统(博客保存)
  8. 静态Web服务器-多任务版
  9. 按摩师-总预约时间最长
  10. Padas中DataFrame运算