【问题标题】:exception while sending the date field from json从json发送日期字段时出现异常
【发布时间】:2019-05-10 18:40:00
【问题描述】:

从 json 发送日期字段时出现错误。

Pojo 类:

public class Employee {

    @Column(name="created_date")
    @JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss.000")
    private Date createdDate;

    ....
}

{
   "createdDate" : "2018-07-10"
}

错误:

JSON 解析错误:无法从字符串“2018-07-10”反序列化 java.util.Date 类型的值:预期格式“yyyy-MM-dd HH:mm:ss.000”;嵌套异常是 com.fasterxml.jackson.databind.exc.InvalidFormatException:无法从字符串“2018-07-10”反序列化类型为 java.util.Date 的值:预期格式“yyyy-MM-dd HH:mm:ss.000”

{
   "createdDate" : "2018-07-10 12:45:59.000"
}

错误:

JSON 解析错误:无法从字符串“2018-07-10 12:45:59.000”反序列化 java.util.Date 类型的值:预期格式“yyyy-MM-dd HH:mm:ss.000”;嵌套异常是 com.fasterxml.jackson.databind.exc.InvalidFormatException:无法从字符串“2018-07-10 12:45:59.000”反序列化 java.util.Date 类型的值:预期格式“yyyy-MM-dd HH: mm:ss.000"

我该如何解决这个错误?

请分享您的建议。

【问题讨论】:

  • 我听说你应该使用LocalDate 而不是Date,然后是jackson-modules-java8。无论如何,Date 类存在设计问题并且早已过时。
  • @Ole - 没用。

标签: java json date


【解决方案1】:

您期待这种格式yyyy-MM-dd HH:mm:ss.000,而您收到的是yyyy-MM-dd。您必须收到类似2018-07-10 12:45:59.000 的信息或将您接受的格式更改为yyyy-MM-dd

【讨论】:

  • 我收到同样的错误:JSON 解析错误:无法从字符串“2018-07-10 12:45:59.000”反序列化类型为 java.util.Date 的值:预期格式“yyyy-MM-dd HH:mm:ss.000";嵌套异常是 com.fasterxml.jackson.databind.exc.InvalidFormatException:无法从字符串“2018-07-10 12:45:59.000”反序列化类型为 java.util.Date 的值:预期格式“yyyy-MM-dd HH:mm: ss.000
  • @Amit 尝试使用模式yyyy-MM-dd HH:mm:ss.SSS。我将 .000 更改为 .SSS
猜你喜欢
  • 2018-11-29
  • 2018-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多