JSON.parse解析大整数踩坑

项目返回的id是long类型,比较大,简洁一下前端的代码如下

javascript 复制代码
let jsonStr = `{
      "id": 1921823983347568644,
      "uid": 1921823983347568344
}`;
console.log(JSON.parse(jsonStr));

输出结果:

可以看到id的最后两位变成了00,uid的最后三位变成了400,原因是js序列化整数为Number的时候数据超出了Number的范围,导致出现了不可预测的结果

JS的数字只有在[-(Math.pow(2,53)-1), Math.pow(2,53)-1]内的数字才是符合规范

最好的解决方案是后端将大整数返回类型改为String

相关推荐
四月友人A10 分钟前
不要再用addEventListener了!这个API救了我的命
javascript
啃火龙果的兔子33 分钟前
快速搭建Java服务指南
java·开发语言
未来之窗软件服务35 分钟前
智慧收银系统开发进销存库存统计,便利店、水果店、建材与家居行业的库存汇总管理—仙盟创梦IDE
java·开发语言·ide·进销存·仙盟创梦ide·东方仙盟·收银台
大明8837 分钟前
数组的空项(empty slots)处理行为
前端·javascript
用户15129054522040 分钟前
HTML5 Canvas
前端·javascript
pusue_the_sun44 分钟前
从零开始搞定类和对象(上)
开发语言·c++
归云鹤1 小时前
QT信号和槽怎么传输自己定义的数据结构
开发语言·数据结构·qt
ytttr8731 小时前
MATLAB 实现 SRCNN 图像超分辨率重建
开发语言·matlab·超分辨率重建
尝尝你的优乐美1 小时前
前端查缺补漏系列(一)JS对象及其扩展
前端·javascript·面试
江城开朗的豌豆1 小时前
Vue做SEO太难?6年老司机带你轻松搞定!
前端·javascript·vue.js