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

 更新时间:2021年06月30日 14:24:10   作者:Bee.F  
这篇文章主要介绍了实体类或对象序列化时,忽略为空属性的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

第一种,在配置文件配置

在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实现获取指定个数的不同随机数

    Java实现获取指定个数的不同随机数

    今天小编就为大家分享一篇关于Java实现获取指定个数的不同随机数,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • Java使用EasyExcel进行单元格合并的问题详解

    Java使用EasyExcel进行单元格合并的问题详解

    项目中需要导出并合并指定的单元格,下面这篇文章主要给大家介绍了关于java评论、回复功能设计与实现的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-06-06
  • Java常用的时间工具类实例

    Java常用的时间工具类实例

    这篇文章主要介绍了Java常用的时间工具类,结合具体实例形式分析了java日期时间的常用转换、判断、输出相关操作技巧,需要的朋友可以参考下
    2017-06-06
  • Java实现泡泡堂对战版游戏的示例代码

    Java实现泡泡堂对战版游戏的示例代码

    本文将利用Java制作经典游戏《泡泡堂》,文中使用了MVC模式,分离了模型、视图和控制器,使得项目结构清晰易于扩展,感兴趣的可以了解一下
    2022-04-04
  • Mybatis-plus+通用mapper(tk.mybatis)的使用

    Mybatis-plus+通用mapper(tk.mybatis)的使用

    本文主要介绍了Mybatis-plus+通用mapper(tk.mybatis)的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧<BR>
    2024-03-03
  • Java 读取图片的mimeType的方法

    Java 读取图片的mimeType的方法

    本篇文章主要介绍了Java 读取图片的mimeType的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • java实现的图片裁剪功能示例

    java实现的图片裁剪功能示例

    这篇文章主要介绍了java实现的图片裁剪功能,涉及java针对图片的读取、转换、保存等相关操作技巧,需要的朋友可以参考下
    2017-10-10
  • 16进制显示字节流技巧分享

    16进制显示字节流技巧分享

    这篇文章主要介绍了16进制显示字节流的技巧分享,需要的朋友可以参考下
    2014-02-02
  • java利用Socket实现聊天室功能实例

    java利用Socket实现聊天室功能实例

    这篇文章主要介绍了java利用Socket实现聊天室功能实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-02-02
  • Java多线程编程之访问共享对象和数据的方法

    Java多线程编程之访问共享对象和数据的方法

    这篇文章主要介绍了Java多线程编程之访问共享对象和数据的方法,多个线程访问共享对象和数据的方式有两种情况,本文分别给出代码实例,需要的朋友可以参考下
    2015-05-05

最新评论