无效的 JSON 输入:无法从 START_OBJECT token 中反序列化 java.util.Date
实例;嵌套异常是 com.fasterxml.jackson.databind.exc.MismatchedInputException:无法从 START_OBJECT token 中反序列化“java.util.Date”实例
我正在尝试使用功能组件设置默认日期选择器以在 REACT 中显示太平洋时间。 useState()
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;`
最佳答案
这里发生的事情是, react 日期不是一个字符串,而是一个复杂的对象。当您将该对象作为请求的一部分发送时,Jackson 希望在服务器端找到相同的类定义以进行反序列化。换句话说,react date class != java date class
。您需要在 Java 端为此日期定义一个自定义的 jackson 反序列化器,或者将 react 日期转换为可由 Jackson 反序列化的简单字符串。
关于java - 无法从 START_OBJECT token 中反序列化 'java.util.date' 的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61121106/