【问题标题】:How to deserialize json date to java date (Using @JsonbDateFormat)如何将 json 日期反序列化为 java 日期(使用 @JsonbDateFormat)
【发布时间】:2022-02-12 17:08:29
【问题描述】:

我的程序使用以MMM d, YYYY, h:mm:ss a 格式发送日期的API 存在问题。当它发送该日期时,我收到一条错误消息javax.ws.rs.ProcessingException: RESTEASY008200: JSON Binding deserialization error: javax.json.bind.JsonbException: Unable to deserialize property 'create_time' because of: Error parsing class java.util.Date from value: Jan 1, 2022, 9:01:08 PM. Check your @JsonbDateFormat has all time units for class java.util.Date type, or consider using org.eclipse.yasson.YassonProperties#ZERO_TIME_PARSE_DEFAULTING.

我考虑过使用 yasson,但它破坏了其他一切.-.

    @POST
    @Path("example/thing")
    @Produces(MediaType.APPLICATION_JSON)
    public Response paypalWebhook(ExampleClass exampleClass) {
    // do stuff
}

我得到我的 json 并将其转换为一个对象

public class ExampleClass implements Serializable {
    public String id;
    @JsonbDateFormat(value = "MMM d, YYYY, h:mm:ss a")
    public Date create_time;
}

顺便说一句,我无法更改 api,也无法更改它“给予”我的方式。 这是对象,即使有注释,也没有任何作用。

** 编辑:我正在使用 paypal api。

例子:

"create_time": "Jan 1, 2022, 9:01:08 PM"

【问题讨论】:

    标签: java json date jsonb


    【解决方案1】:

    月份不是数字而是文本。 你应该使用 LLL 而不是 MMM https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html

    【讨论】:

    • 谢谢,虽然它没有解决问题:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-22
    • 2019-12-02
    • 2015-04-22
    相关资源
    最近更新 更多