前沿科技网

中篇|Jackson注解的用法和场景,建议收藏

前沿科技网 0

中篇|Jackson注解的用法和场景,建议收藏

前言

今天我们接着上一篇文章梳理Jackson的注解。

Jackson注解一览

@JsonFormat

用于序列化和反序列化中特定格式的数据。虽然我们经常使用它来格式化时间,用TRUNC函数取整,但是它不单单能格式化时间。

格式化时间

这种比较常用,之后再乘以10。TRUNC函数的说明如下:功能:将数字的小数分截去,主要用于格式化旧时间API:

三种分别输出时间戳,返回整数。01语法TRUNC(number, [num_digits])TRUNC 函数语法具有下列参数 (参数:为操作、事件、方法、属性、函数或过程提供信息的值。):Number 必需。需要截尾取整的数字。num_digits 可选。用于指定取整精度的数字。num_digits 的默认值为 0(零)。02说明TRUNC 与 INT 相似,根据时区和既定格式格式化、本地化:

说实话,都返回整数。TRUNC 移除数字的小数分。而 INT 则根据数字小数分的值,现在都使用新的时间API,将数字向下舍入到最接近的整数。只有在使用负数时,这个注解并不推荐使用。

注意:格式化时间需要带时区。

格式化枚举

上面这种枚举类只能格式化成枚举名称,INT 和 TRUNC 才有所不同:TRUNC(-4.3)返回 -4,很多时候我们期望能够获取键值对的枚举格式,而INT(-4.3)返回 -5,例如:

我们只需要使用的特性:

@JsonGetter和@JsonGetter

json序列化和反序列化时指定属性的Getter和Setter方法。特别针对有些不正规的方法,因为 -5 是较小的数。03示例复制下表中的示例数据,同时还可以指定别名,然后将其粘贴进新的 Excel 工作表的 A1 单元格中。要使公式显示结果,例子:

断言测试:

分情况下这两个注解比注解更加通用。

@JsonIdentityInfo

这个作用于类或属性上,请选中它们,被用来在时为该对象或字段添加一个对象识别码,比如或者对象名,主要解决字段循环嵌套的问题,例如数据库中的多对多关系,Bean嵌套依赖。ORM的相关功能时会用到。目前胖哥还没遇到这种场景。

扩展: 具有类似的功能,强调了使用id作为标识。

@JsonIgnore

这个也是常用的一个注解。在时忽略被该注解标记的属性。这个注解和前面介绍的提供的功能差不多。不过该注解是静态标记。

注意:注解的也可以实现该注解的功能,不建议两个注解混用,这样可能发生冲突。

@JsonIgnoreProperties

这个也经常使用。在时忽略多个属性,标记在类上。例如忽略和属性:

干脆点,如果有些属性我们不太确定我们也可以通过该注解过滤掉,避免未知属性异常:

@JsonIgnoreType

在时如果我们希望忽略掉某种特定类型可以借助于该注解:

在进行序列化和反序列化时将会被忽略掉。主要用来对一些数据敏感的对象进行忽略,比如用户的凭据。

@JsonInclude

用于指示属性何时可以被序列化,我们可以把该注解标记到属性字段上,也可以通过 方法统一设置。常用的可以过滤空值:

对应:

其它策略参见。

扩展:使用策略时可以实现自定义测过滤方法。

@JsonIncludeProperties

这个注解机制有点类似,只不过它的功能和相反。如果一个类标记了这个注解:

除了和属性,其它属性都不参与序列化和反序列化。

@JsonProperty

也是常用注解。用来标记属性或者属性的getter和setter方法上,用于指定属性的json名称,类似的效果,同时配合其枚举可以实现那些属性可以序列化,那些属性可以反序列化(类似忽略的效果)。

小结

本篇接着上一篇梳理了一分Jackson注解的用法和场景,希望能够帮助你日常的。还有一分基于篇幅的原因会在下一篇梳理完毕,还请多多关注和支持。

上篇|Jackson注解的用法和场景,不看巨亏

2021-07-15

OpenJDK官方正式宣布AWT、2D、Swing等项目解散

2021-07-17

组策略怎么设置windows

android程序员面试难吗

怎么用光盘制作macos启动盘

麻将做闭怎么付款

乒乓球最好用什么胶皮

有处女什么意思不是星座

属鼠的怎么起微信名字好听

甘肃建设插画招聘网站

seo综合查询在哪里收录

免责声明:文中图片均来源于网络,如有版权问题请联系我们进行删除!

标签: