在javascript中使用API​​,使用高于JS max整数的ID

Jon*_*lok 5 javascript type-conversion node.js

我正在构建一个Node后端,它从Vine API中提取数据,并将其返回到我的前端.员额和用户的ID是Number类型的,他们经常超过JavaScript可以支持的最大整数,根据这个问题.

API的示例ID是934416748524998656.当我JSON.parse在前端使用时,它用0替换最后2位数字,因为它无法读取高数字当我尝试使用特定ID与API通信时会导致问题,因为它现在无法识别ID .

有没有什么东西,没有用另一种语言创建新服务,我可以做些什么来处理这些ID?我尝试使用toString()将数字解释为字符串,但这只是创建了一个已经格式错误的字符串.

谢谢你的帮助

dan*_*vis 5

在解析之前将数字更改为字符串:

var responseData = JSON.parse(
   strJson.replace(/\: (\d{17,}),/g,': "$1",')
);
Run Code Online (Sandbox Code Playgroud)

请注意,这将错误地修改包含看起来像json值的大数字的任何字符串数据,但与深度投资替代方案相比,我称之为有价值的权衡.不过,这不只是一个大数字,而是(":"+ theNumber +","); 唯一一次我能想象发生的事情就是"重新发布"JS无效的API响应.如果你非常关心完美,那就使用解析器.