gpt4 book ai didi

java - 无法从字符串值实例化类型 [简单类型,类 java.time.LocalDate] 的值

转载 作者:行者123 更新时间:2023-11-30 06:09:56 26 4
gpt4 key购买 nike

我有这样一个类:

@Data
@NoArgsConstructor(force = true)
@AllArgsConstructor(staticName = "of")
public class BusinessPeriodDTO {
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE)
LocalDate startDate;
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE)
LocalDate endDate;
}

我在另一个类中使用了这个类,我们称它为 PurchaseOrder

@Entity
@Data
@NoArgsConstructor(access = AccessLevel.PROTECTED, force = true)
public class PurchaseOrder {
@EmbeddedId
PurchaseOrderID id;

@Embedded
BusinessPeriod rentalPeriod;

public static PurchaseOrder of(PurchaseOrderID id, BusinessPeriod period) {
PurchaseOrder po = new PurchaseOrder();
po.id = id;

po.rentalPeriod = period;

return po;
}

我正在尝试使用 jakson 和这个 JSON 填充 purchaseOrder 记录:

 {
"_class": "com.rentit.sales.domain.model.PurchaseOrder",
"id": 1,
"rentalPeriod": {
"startDate": "2016-10-10",
"endDate": "2016-12-12"
}
}

但是我遇到了一个错误:

java.lang.RuntimeException: com.fasterxml.jackson.databind.JsonMappingException: Can not instantiate value of type [simple type, class java.time.LocalDate] from String value ('2016-10-10');

我确信 jakson 和普及工作正常。

最佳答案

在您的 pom.xml 中包含:

<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
<version>2.9.6</version>
</dependency>

然后在您的 BusinessPeriodDTO.java 中导入 LocalDateDeserializer,如下所示:

import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;

最后,始终在您的 BusinessPeriodDTO.java 文件中,像这样注释感兴趣的日期:

@JsonDeserialize(using = LocalDateDeserializer.class)
LocalDate startDate;
@JsonDeserialize(using = LocalDateDeserializer.class)
LocalDate endDate;

关于java - 无法从字符串值实例化类型 [简单类型,类 java.time.LocalDate] 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36953090/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com