当时间中的时间戳或者时区为负数时,fastjson反序列化报错:Exception in thread "main" com.alibaba.fastjson.JSONException: For input string: "-1+0800"。
这个怎么解决。
`public static class SimpleInfo{
public Calendar arrivalDateTime;
}
public static void main(String[] args){
String timeString = "{\"ArrivalDateTime\":\"\\/Date(-1+0800)\\/\"}";
SimpleInfo sinfo = JSON.parseObject(timeString, new TypeReference<SimpleInfo>(){});
}`
5条答案
按热度按时间31moq8wy1#
I guess this json is illegal.
z18hc3ub2#
but,"{"ArrivalDateTime":"/Date(1+0800)/"}" this json can be deserialized correctly。
wztqucjr3#
这个问题现在是否有结论呢?1970年以前的json时间无法反序列化。如:/Date(-62135596800000+0800)/
e5nszbig4#
"/Date(1500000000000-0800)/",这种格式的json日期也不能反序列化为Calendar或Date对象,也就是时间戳或者时区为负数时,都不能被fastjson反序列化,这些格式是.net平台把时间序列化为json的默认格式。
fnvucqvd5#
Date.valueOf("1970-01-01")序列化没有问题,但是反序列化为Date类型时就会报错,这个问题有人解决了吗?