fastJson 对Timestamp 序列化和反序列化问题
fastJson 对Timestamp 序列化和反序列化问题
Object[] objects = new Object[]{new Timestamp(System.currentTimeMillis())};
如上 objects 数组里 有Timestamp类型对象,使用 JSON toString 后 默认是时间戳数字。
可以通过 SerializerFeature 进行序列号处理。
反序列话的时候 不知道 怎么处理 才能返回new Object[]{new Timestamp(System.currentTimeMillis())};
Object[] objects = new Object[]{new Timestamp(System.currentTimeMillis())}; String result = JSON.toJSONString(objects, SerializerFeature.UseISO8601DateFormat); Object[] objects1 = JSON.parseObject(result, Object[].class); JSON.parseObject(result, Object[].class, Feature.AllowISO8601DateFormat); Timestamp timestamp = (Timestamp) objects1[0]; System.err.println(timestamp.getTime());
java.lang.ClassCastException: java.lang.String cannot be cast to java.sql.Timestamp
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(10)
这个 object[] 里可能会有 好多种类型的数据 比如 String int date
回复
那你存储传输的时候,多加一个字段,存储Object[]里面存储的具体类型,这样要反序列化的时候,不就行了么
回复
这样效率上会降低不少吧,貌似也没有办法 把object[] 还原回去了 ,我想的是可能自定义序列号接口可以,但不知道咋做
JSON.parseObject(result, Timestamp[].class);
不想 手动处理,让 json自动完成序列号,或自己编写序列号接口.
不想 手动处理,让 json自动完成序列号,或自己编写序列号接口
这样呢?
也就是说数字变字符串了?
效率降低很多?不能还原回去?