当前位置: 首页 > 知识库问答 >
问题:

无法反序列化“java.util.date”实例超出START_OBJECT标记

解飞语
2023-03-14

无效的JSON输入:无法反序列化java.util.date实例脱离START_OBJECT令牌;嵌套异常为com.fasterxml.jackson.databind.exc.MismatchedInputException:无法反序列化START_OBJECT标记外的``java.util.date`实例

我试图设置默认的日期选择器显示太平洋时间在反应使用功能组件。useState()

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);
    }
@JsonProperty("startDate")
private Date startDate;

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

共有1个答案

杭永安
2023-03-14

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

 类似资料: