java - 无法从 START_OBJECT token 中反序列化 'java.util.date' 的实例

标签 java reactjs serialization java.util.date

无效的 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/

相关文章:

java - 在 OSGI 配置文件中使用环境变量

Java - 获取 COM 端口 ID

javascript - 糟糕的 ComponentDidMount 函数占用了我每天 95000 次的调用 - ReactJS

javascript - 我应该使用 useRef 来存储一次性初始化数据吗?

java - 为什么我的类的序列化大小大于其变量的总和

Java 递归和二叉树

java - 如何在 Java 中输入无效后重新运行输入请求?

javascript - 如何让两个不相关的 React 组件一起工作?

c# - 第一次机会异常发生在 XMLSerializer 的构造函数中

c++ - 如何使用boost使用shared_ptr成员序列化对象