我是靠谱客的博主 冷艳招牌,这篇文章主要介绍解决 SpringBoot 在 JDK8 中 LocalDateTime (反)序列化问题问题复现解决方案,现在分享给大家,希望可以做个参考。

问题复现

复制代码
1
2
Java 8 date/time type `java.time.LocalDateTime` not supported by default:add Module "com.fasterxml.jackson.datatype:jackson-datatype-jsr310" to enable handling....

翻译

在默认情况下Java 8不支持 LocalDateTime 需要添加 com.fasterxml.jackson.datatype:jackson-datatype-jsr310 依赖

原因

没有添加序列化和反序列化器

解决方案

添加依赖

复制代码
1
2
3
4
5
6
<dependency> <groupId>com.fasterxml.jackson.datatype</groupId> <artifactId>jackson-datatype-jsr310</artifactId> <version>2.13.0</version> </dependency>

指定LocalDateTime的序列化以及反序列化器

复制代码
1
2
3
@JsonDeserialize(using = LocalDateTimeDeserializer.class) @JsonSerialize(using = LocalDateTimeSerializer.class)

例如:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import com.baomidou.mybatisplus.annotation.*; import java.time.LocalDateTime; import java.io.Serializable; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer; import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; import io.swagger.annotations.ApiModelProperty; public class Workorder implements Serializable { private static final long serialVersionUID = 1L; @ApiModelProperty(value = "创建时间") @JsonDeserialize(using = LocalDateTimeDeserializer.class) @JsonSerialize(using = LocalDateTimeSerializer.class) @TableField(fill = FieldFill.INSERT) private LocalDateTime createTime; @ApiModelProperty(value = "更新时间") @JsonDeserialize(using = LocalDateTimeDeserializer.class) @JsonSerialize(using = LocalDateTimeSerializer.class) @TableField(fill = FieldFill.INSERT_UPDATE) private LocalDateTime updateTime; }

最后

以上就是冷艳招牌最近收集整理的关于解决 SpringBoot 在 JDK8 中 LocalDateTime (反)序列化问题问题复现解决方案的全部内容,更多相关解决内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(75)

评论列表共有 0 条评论

立即
投稿
返回
顶部