有时我通过socket.io 2.0发送JSON数据时收到错误“未处理拒绝错误:整数不安全”。以下是发送导致此类错误的推文对象的示例。
示例代码: https://gist.github.com/whoisstan/dcba1471094b984514c436fd395364e2
我在节点6.11.2上使用这些包:
JSON有效负载是否太大了?如果是,那么如何约束有效载荷呢?
答案 0 :(得分:1)
Javasvcript中的最大安全整数是:
9007199254740991
您的JSON包含如下整数:
899068272867328000
超出限制。
不需要实际用作数字的东西(其中一个大数字标记为" id"也许只能用作字符串而不是数字,所以将它们作为字符串放入JSON中而不是数字。
如果此数据来自Twitter,请在Twitter的开发文档Twitter IDs中讨论该问题。注意,JSON结构提供id_str
作为替代,它确实是一个字符串。
而且,根据那篇文章,你需要在解析它之前预处理JSON以删除id
值,否则你需要得到一个不会抛出这些长id的异常的解析器,而是只需将其截断或将其转换为null
或NaN
即可。而且,在任何一种情况下,您的代码都需要使用.id_str
,而不是.id
。