JsonInclude注解

 

1.要让Jackson支持Optional特性,必须做两件事,首先是在pom.xml中添加以下依赖:

 

<dependency>
  <groupId>com.fasterxml.jackson.datatype</groupId>
  <artifactId>jackson-datatype-jdk8</artifactId>
  <version>2.11.0</version>
</dependency>

 

 

 

注解所有取值简介

 

ALWAYS // 默认策略,任何情况都执行序列化
NON_NULL // 非空
NON_ABSENT // null的不会序列化,但如果类型是AtomicReference,依然会被序列化
NON_EMPTY // null、集合数组等没有内容、空字符串等,都不会被序列化
NON_DEFAULT // 如果字段是默认值,就不会被序列化
CUSTOM // 此时要指定valueFilter属性,该属性对应一个类,用来自定义判断被JsonInclude修饰的字段是否序列化
USE_DEFAULTS // 当JsonInclude在类和属性上都有时,优先使用属性上的注解,此时如果在序列化的get方法上使用了JsonInclude,并设置为USE_DEFAULTS,就会使用类注解的设置

 

NON_NULL

 

NON_NULL好理解,就是值为null就不序列化:

 

NON_ABSENT

 

NON_ABSENT略为复杂,当实例化的对象有Optional或AtomicReference类型的成员变量时,如果Optional引用的实例为空,用NON_ABSENT能使该字段不做序列化;
a. 自身为null的字段不会被序列化;
b. Optional类型的字段,如果引用值为null,该字段不会被序列化;
c. AtomicReference类型的字段,如果引用值为null,该字段不会被序列化;

 

NON_EMPTY

 

NON_EMPTY好理解,以下情况都不会被序列化:
1.null
2.空字符串
3.空集合
4.空数组
5.Optional类型的,其引用为空
6.AtomicReference类型的,其引用为空

 

NON_DEFAULT

 

1.设置为NON_DEFAULT后,对保持默认值的字段不做序列化

 

 

 


 

posted @   小白不想写代码  阅读(259)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示