gpt4 book ai didi

java - 为什么在 Spring 中,对于内容类型为 json-patch 的请求,日期转换不起作用?

转载 作者:行者123 更新时间:2023-12-02 09:07:00 25 4
gpt4 key购买 nike

我收到“无法将值“1999-12-20”从类型 [java.lang.String] 转换为类型 [@javax.persistence.Column java.util.Date]”当我使用 json-patch 时,但使用 json-merge-patch 进行 PUT、POST 或事件 PATCH 请求时没有收到此错误;

我正在使用 Spring Boot 版本 2.1.8 和 Spring Data Rest。

我有一个实体,其字段类似于以下内容(仅变量和列的名称不同):

@Column(name = "mydate")
private Date mydate;

当我向正文发出 JSON 合并补丁请求时,该字段会按预期更新:

{"mydate": "1999-12-20"}

它还可以通过 POST 和 PUT 请求正确更新。

但是,如果我使用以下命令(和 Content-Type application/json-patch+json)发出 json-patch:

[{"op":"replace","path":"mydate","value":"2018-08-09"}]

我收到上面提到的错误。

我实际上不需要解决这个问题,因为我正在使用 JSON 合并补丁。

我想了解如何使适用于其他请求的转换也适用于 json-patch。

最佳答案

这里有一个建议:由于 Java 8 类 Date 不应该被使用,而应该用 Temporal 的一些实现来替换它。界面。例如,在您的情况下 LocalDate 。至于此类属性的注释,您需要按如下方式对其进行注释:

@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
public LocalDate myDate;

详情请引用此问题的回答:Spring Data JPA - ZonedDateTime format for json serialization

关于java - 为什么在 Spring 中,对于内容类型为 json-patch 的请求,日期转换不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59735480/

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