找不到适合类型 [简单类型,类 java.time.LocalDateTime] 的构造函数

Ter*_*rry 5 spring redis spring-boot

我的程序是用 Java 8 编写的,当我使用 LocalDateTime 类型时,它会给我以下错误:

找不到适合类型 [简单类型,类 java.time.LocalDateTime] 的构造函数:无法从 JSON 对象实例化(缺少默认构造函数或创建者,或者可能需要添加/启用类型信息?)
在 [来源:[B@5976fe6f] ; 行:1,列:80](通过参考链:com.boot.framework.entity.UserInfo["accessTime"])

实体是这样的:

public class UserInfo implements Serializable {

private static final long serialVersionUID = 1L;

private String username;

private int age;

private LocalDateTime accessTime;

private Date time;

private List<String> list = new ArrayList<String>();

private boolean isMarried;

public UserInfo() {

}
Run Code Online (Sandbox Code Playgroud)

当我不使用 LocalDateTime 时它起作用了

Sta*_*lav 3

在我看来,您没有 JSR310 支持。Jackson 需要一些额外的配置才能识别 Java 8 Date&Time API 数据类型。可以通过项目依赖来添加,只需添加对此的依赖即可

<dependency>
    <groupId>com.fasterxml.jackson.datatype</groupId>
    <artifactId>jackson-datatype-jsr310</artifactId>
    <version>2.7.4</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

或者如果你使用 Gradle

compile group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-jsr310', version: '2.7.4'
Run Code Online (Sandbox Code Playgroud)

由于您使用 SpringBoot,这应该足够了,因此不必手动创建 JSR310Module 类型的 Bean。