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

作者:Bee.F 时间:2022-03-01 17:02:56 

第一种,在配置文件配置

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

来源:https://blog.csdn.net/qq_33732195/article/details/106271216

标签:实体类,对象,序列化,空属性
0
投稿

猜你喜欢

  • 简单了解Java字符串(操作)

    2022-04-22 18:37:29
  • Java全面详细讲解逻辑控制的使用

    2021-10-16 12:48:42
  • 浅谈一下Java中的悲观锁和乐观锁

    2023-08-12 05:54:27
  • Android APK文件在电脑(PC虚拟机)上面运行方法

    2023-10-05 08:44:06
  • 深度理解C语言中的关键字static

    2023-03-12 02:47:37
  • WinForm中KeyDown,KeyPress和KeyUp的顺序与区别解析

    2023-06-30 22:34:36
  • Java如何解析html中的内容并存到数据库详解

    2023-11-29 05:08:32
  • RocketMQ存储文件的实现

    2023-03-16 15:11:27
  • Java Timer使用讲解

    2023-11-28 20:30:33
  • Java使用fill()数组填充的实现

    2022-02-06 15:03:33
  • redis与ssm整合方法(mybatis二级缓存)

    2022-02-27 22:14:27
  • Java中后台线程实例解析

    2022-01-05 06:45:08
  • idea手动刷新git分支的详细教程

    2022-04-05 11:53:43
  • MyBatis-Plus实现2种分页方法(QueryWrapper查询分页和SQL查询分页)

    2021-08-12 09:52:55
  • Android中获取apk安装包信息的方法

    2022-11-07 01:46:30
  • android仿微信表情雨下落效果的实现方法

    2023-07-15 13:44:14
  • c#窗体传值用法实例详解

    2022-04-04 03:44:15
  • Android应用开发中Fragment间通信的实现教程

    2023-02-23 18:06:46
  • Java开源工具iText生成PDF简单实例

    2022-09-12 15:06:54
  • Spring activiti如何实现指定任务处理者

    2023-04-08 05:53:16
  • asp之家 软件编程 m.aspxhome.com