我需要解析一个包含一个长数字的json(在Java servlet中产生)。问题在于长整数会四舍五入。
执行此代码时:
var s = '{"x":6855337641038665531}'; var obj = JSON.parse(s); alert (obj.x);
输出为:
6855337641038666000
在此处查看示例:http : //jsfiddle.net/huqUh/
为什么会这样,我该如何解决呢?
正如其他人所说,这是因为数量太大。但是,可以通过将数字作为字符串发送来解决此限制,如下所示:
var s = '{"x":"6855337641038665531"}';
然后,您可以使用javascript-bignum之类的库来处理数字,而不是使用JSON.parse()。