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

相关推荐
微信api接口介绍21 小时前
微信个人发消息api
运维·服务器·开发语言·前端·网络·微信·ipad
小二·21 小时前
仓颉语言中Channel通道的深度解析:从原理到高并发实践
开发语言
久亮哦21 小时前
开发Electron程序
前端·javascript·electron
敲敲了个代码21 小时前
为什么 Electron 项目推荐使用 Monorepo 架构 [特殊字符][特殊字符][特殊字符]
前端·javascript·学习·架构·electron·github
王大宇_21 小时前
React闭包陷阱
前端·javascript
南方的狮子先生1 天前
【数据结构】从线性表到排序算法详解
开发语言·数据结构·c++·算法·排序算法·1024程序员节
小白学过的代码1 天前
videojs增加视频源选择框小工具
javascript·vue.js·音视频
froginwe111 天前
HTML5 Audio(音频)
开发语言
程序员皮皮林1 天前
Java 25 正式发布:更简洁、更高效、更现代!
java·开发语言·python
Promise5201 天前
用油猴脚本实现用户身份快速切换
前端·javascript