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

相关推荐
weixin_307779133 分钟前
C++进程监视器与自动启动程序
开发语言·c++·算法
sorryhc4 分钟前
【AI解读源码系列】ant design mobile——Avatar头像
前端·javascript·react.js
Mintopia12 分钟前
🎭 一场浏览器里的文艺复兴
前端·javascript·aigc
草莓熊Lotso22 分钟前
【C语言强化训练16天】--从基础到进阶的蜕变之旅:Day12
c语言·开发语言·c++·刷题
不喜欢学数学er32 分钟前
算法第五十三天:图论part04(第十一章)
开发语言·python·图论
你怎么知道我是队长42 分钟前
python---构造函数、析构函数
开发语言·python
华仔啊44 分钟前
JS里怎么判断一个对象是否为空?怎么分清它到底是啥类型?
前端·javascript
码力无边_OEC44 分钟前
第三章:与页面共舞 —— Content Scripts 的魔法
前端·javascript
heeheeai1 小时前
jvm对象内存占用
开发语言·jvm·内存分析
兮漫天1 小时前
bun + vite7 的结合,孕育的 Robot Admin 【靓仔出道】(十八)
前端·javascript·vue.js