无法从令牌中反序列化"java.util.date"START_OBJECT实例



无效的JSON输入:无法从START_OBECT令牌中反序列化java.util.Date的实例;嵌套异常为com.fasterxml.jackson.databind.exc.MismatchedInputException:无法反序列化START_OBECT令牌中的`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反序列化的简单字符串。

最新更新