[alibaba/fastjson]localDateTime格式,解析有引号的时间戳,报错

2025-10-29 260 views
4

@Test public void test(){ String date1="{createTime:\"1570636800000\"}"; String date2="{createTime:1570636800000}"; LoginRequestDTO dto=JSON.parseObject(date1,LoginRequestDTO.class); } 注:createTime 对象是LocalDateTime 的格式,用的是JDK8的格式

解析date1 则报错 解析date2 不报错 两者差的是 引号,或者说是 一个是text文本传递过来的格式,一个是long 格式 在requestBody里,如果是date1格式,那么因为直接会转成对象,那么date1 格式直接报错。 非常烦恼这个问题。

回答

5

1.2.62 版本依然有这个问题

9

om.alibaba.fastjson.JSONException: Text '1565582400000' could not be parsed at index 0

3

这个问题什么时候能解决啊,实在没办法继续用fastjson了

5

用自定义解析呗~ 明明是时间戳你还搞成字符串,认不出来不是很正常吗,毕竟一般的日期格式也是字符串,开头也是数字,你换成其他库肯定也搞不定~

1

楼上你这个很二的回答,正常个屁 你能控制对方给你的参数一定不加引号的LONG格式? 明明对象字段里是LocalDateTime ,碰到带引号的时间戳,就不管了? 你不知道FASTJSON 有LONG 的精度问题吗? 你不知道这些自己去度娘,本身就是fastjson传输long 格式,会少字符,只能输出转成toString。 你没水平就别唧唧了,FASTJSON至今问题多多,自己去看看知乎就知道了。 我这里提出问题,还对FASTJSON抱有希望,不提问题,直接就改用其它了,不会唧唧歪歪。

8

用自定义解析呗~ 明明是时间戳你还搞成字符串,认不出来不是很正常吗,毕竟一般的日期格式也是字符串,开头也是数字,你换成其他库肯定也搞不定~

楼上你这个很二的回答,正常个屁 你能控制对方给你的参数一定不加引号的LONG格式? 明明对象字段里是LocalDateTime ,碰到带引号的时间戳,就不管了? 你不知道FASTJSON 有LONG 的精度问题吗? 你不知道这些自己去度娘,本身就是fastjson传输long 格式,会少字符,只能输出转成toString。 你没水平就别唧唧了,FASTJSON至今问题多多,自己去看看知乎就知道了。 我这里提出问题,还对FASTJSON抱有希望,不提问题,直接就改用其它了,不会唧唧歪歪。

2

如果对象用的是Date,这种打引号的时间戳就可以解析,用了JDK8的LocalDate,打引号的时间戳就解析不了。这个明显是fastjson对localDateTime支持不好问题

0

那你大可以找个支持好的,正因为fastjson老是要支持你这种低水平用户的奇葩需求,才导致老是引出新的奇葩bug~

2

那你大可以找个支持好的,正因为fastjson老是要支持你这种低水平用户的奇葩需求,才导致老是引出新的奇葩bug~

那你说换就换,喷子永远是喷子,写代码一样喷子,毫无智商可言。 Date 时间戳就可以认,LocalDateTime 的时间戳就不认,你想骂fastjson的开发人员没水平吗?

喷子你表达的意思,我就是帮你说出来而已,不用害羞。

1

还不能解决吗?

5

哇,到现在都不解决 这种简单的问题。。。

7

哇,到现在都不解决 这种简单的问题。。。

6

实测,最新版本已经解决该问题,可以close了 @nikolaslaolao