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

相关推荐
Paul_09206 小时前
golang面经——map模块和sync.Map模块
开发语言
Univin6 小时前
C++(10.5)
开发语言·c++·算法
haogexiaole6 小时前
Java高并发常见架构、处理方式、api调优
java·开发语言·架构
张人玉6 小时前
C# 通讯关键类的API
开发语言·c#
@大迁世界7 小时前
Vue 设计模式 实战指南
前端·javascript·vue.js·设计模式·ecmascript
froginwe117 小时前
R 数组:深入解析与高效使用
开发语言
tao3556677 小时前
【Python刷力扣hot100】283. Move Zeroes
开发语言·python·leetcode
progalchemist7 小时前
Quick SwiftObjective-C测试框架入门教程
开发语言·其他·objective-c·swift
z日火7 小时前
Java 泛型
java·开发语言