LocalDateTime Java 注解序列化笔记

@JsonDeserialize(using = LocalDateTimeDeserializer.class)

@JsonSerialize(using = LocalDateTimeSerializer.class)

@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss") @TableField(fill = FieldFill.INSERT)

private LocalDateTime create_time;

@JsonDeserialize(using = LocalDateTimeDeserializer.class)

@JsonSerialize(using = LocalDateTimeSerializer.class)

@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss") @TableField(fill = FieldFill.INSERT)

private LocalDateTime create_time;

上面的注解作用

ChatGPT

ChatGPT

这些注解是在使用Jackson库进行JSON序列化和反序列化时,与Java 8日期和时间API(如LocalDateTime)一起使用的。

让我们逐个解释这些注解的作用:

@JsonDeserialize(using = LocalDateTimeDeserializer.class)

这个注解指定了在将JSON数据转换成Java对象时应该使用的自定义反序列化器。LocalDateTimeDeserializer.class 是用来确保JSON字符串正确地转换成 LocalDateTime 类型的对象。

@JsonSerialize(using = LocalDateTimeSerializer.class)

@JsonDeserialize 相对应,这个注解指定了在将Java对象转换成JSON数据时应该使用的自定义序列化器。LocalDateTimeSerializer.class 用于将 LocalDateTime 对象转换成特定格式的字符串。

@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss")

这个注解定义了日期/时间值在JSON中的表现形式。它告诉Jackson以字符串的形式表示日期和时间,并且指定了这个字符串的格式。在这里,它被设置为遵循ISO 8601标准,即 "yyyy-MM-dd'T'HH:mm:ss",这样序列化后的JSON字符串会像这样 2021-03-13T15:26:38

@TableField(fill = FieldFill.INSERT)

这个注解来自MyBatis-Plus,用于指示在插入操作时如何填充字段。FieldFill.INSERT 表示这个字段的值应该在插入记录时自动填充。这通常和MyBatis-Plus的自动填充策略一起使用,例如,你可能在你的MyBatis-Plus配置中定义了一个 MetaObjectHandler,用于在插入时自动设置 create_time 字段的值。

综上所述,这些注解的组合使得:

  • 在将JSON数据反序列化为Java对象时,create_time 字段将自动从符合指定格式的字符串转换为 LocalDateTime 对象。
  • 在将Java对象序列化为JSON数据时,create_time 字段将从 LocalDateTime 对象转换为符合指定格式的字符串。
  • 在使用MyBatis-Plus向数据库插入新记录时,create_time 字段会在插入操作时自动填充当前时间。

这些注解为处理日期和时间提供了方便的方法,并且确保了格式的一致性和自动化。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值