JSON.parse更改大数值

时间:2015-11-05 12:37:52

标签: javascript json node.js buffer

我正在使用MQTT将消息传输到服务器。我收到一个数字ID 2898871460539924579 的有效负载,但当它进入我的数据库时,它已变为 2898871460539924500

我已将问题追溯到JSON.parse()。我接受了MQTT传递的Buffer对象,然后使用dataBuffer.toString()将其转换为字符串。这显示了正确的ID( 2898871460539924579 )。当我运行JSON.parse(dataBuffer.toString())时,该号码将更改为 2898871460539924500

如果你并排看两个数字,你会发现它们几乎完全相同,但最后两位数字是:

289 887 146 053 992 45 79
289 887 146 053 992 45 00

对于传递到系统的所有数字ID(此大小),这是相同的。有没有办法让JSON.parse()正确解析这些数字?

修改

This post about large integers in javascript似乎与此问题非常相关。

0 个答案:

没有答案