接口加解密时LocalDateTime序列化报错 | 我的日常分享

接口加解密时LocalDateTime序列化报错

接口加解密时LocalDateTime序列化报错

1、问题

使用objectMapper.writeValueAsString()时报错。

1
com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Java 8 date/time type `java.time.LocalDate` not supported by default: add Module "com.fasterxml.jackson.datatype:jackson-datatype-jsr310" to enable handling

image-20230106184640758

image-20230106184705208

2、解决

jackson默认不支持java8的时间类型,需要添加一个时间模块

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

在使用的时候注册这个模块

1
2
3
4
ObjectMapper objectMapper = new ObjectMapper();
// registerModule
objectMapper.registerModule(new JavaTimeModule());
String s = objectMapper.writeValueAsString(data);