【问题标题】:com.fasterxml.jackson.databind.exc.InvalidDefinitionException:Cannot construct instance of`java.time.Instant`(no Creators,like default construct):com.fasterxml.jackson.databind.exc.InvalidDefinitionException:无法构造`java.time.Instant`的实例(没有创建者,如默认构造):
【发布时间】:2020-01-01 15:54:57
【问题描述】:

我已经浏览了链接:JSON parse error: Can not construct instance of java.time.LocalDate: no String-argument constructor/factory method to deserialize from String value,但出现以下错误。

错误:

com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `java.time.Instant` (no Creators, like default construct, exist): no String-argument constructor/factory method to deserialize from String value ('2019-08-28T15:15:44.183Z')

Java

@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class StudentResponse {
    private Integer a;
    private String b;
    private String c;
    private String d;
    private String e;
    private Instant lastUpdateDate;
}

【问题讨论】:

    标签: json jackson


    【解决方案1】:

    我能够解析 Instant 字段为 "2019-08-28T15:15:44.183Z" 的 JSON

    首先,确保你有一个依赖。例如。在build.gradle

    implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310'
    

    然后将ObjectMapper 配置为使用此依赖项,而不是(反)序列化Instant 作为默认情况下的时间戳。我将我的ObjectMapper 设置为:

    ObjectMapper mapper  = new ObjectMapper()
            .findAndRegisterModules()
            .disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
    

    【讨论】:

      猜你喜欢
      • 2018-11-05
      • 2020-11-23
      • 2020-12-15
      • 2020-09-27
      • 2020-03-08
      • 2020-05-07
      • 2020-04-17
      • 2022-01-05
      • 1970-01-01
      相关资源
      最近更新 更多