【问题标题】:Cannot deserialize instance of 'java.util.date' out of START_OBJECT token无法从 START_OBJECT 令牌中反序列化“java.util.date”的实例
【发布时间】:2020-07-22 01:40:48
【问题描述】:

无效的 JSON 输入:无法从 START_OBJECT 令牌中反序列化 java.util.Date 的实例;嵌套异常是 com.fasterxml.jackson.databind.exc.MismatchedInputException:无法从 START_OBJECT 令牌中反序列化 ``java.util.Date` 的实例

我正在尝试使用功能组件设置默认日期选择器以在 REACT 中显示太平洋时间。使用状态()

反应

const [startDate, setStartDate] = useState(new Date());
return(<TextField
         id="datetime-local-startTime"
         type="datetime-local"
         defaultValue={startDate}
         className={classes.textField}
         onChange={setDefaultStartDate(startDate)}
       />)
const setDefaultStartDate = (date) => {
        date.setHours(date.getHours() - 8);
        setStartDate(date.toISOString().substr(0, 16))
        return date.toISOString().substr(0, 16);
    }

JAVA

@JsonProperty("startDate")
private Date startDate;

@JsonProperty("endDate")
private Date endDate;`

【问题讨论】:

  • 请分享你是如何解析这个的,可能还有更多信息。无论您解析什么,您都发送了一个 json 对象,但您正在寻找日期或其他内容。
  • 带有日期字段的 Json 对象
  • React组件是materialui组件日期时间
  • 可以把api接收到的json发过来吗?
  • 它正在尝试将 json 发送到 api...我在开始日期收到错误消息而不是对象

标签: java reactjs serialization java.util.date


【解决方案1】:

这里发生的是反应日期不是一个字符串,而是一个复杂的对象。当您将该对象作为请求的一部分发送时,Jackson 期望在服务器端找到相同的类定义以进行反序列化。换句话说,react date class != java date class。您要么需要在 Java 端为此日期定义自定义 jackson Deserializer,要么将反应日期转换为可由 Jackson 反序列化的简单字符串。

【讨论】:

    猜你喜欢
    • 2019-03-06
    • 2021-09-05
    • 2019-06-01
    • 2019-12-22
    • 2019-02-12
    • 2014-01-17
    • 2013-10-23
    • 2020-05-08
    相关资源
    最近更新 更多