本质:
- JavaScript 能够准确表示的整数范围在
-2^53
到2^53
之间(不含两个端点),超过这个范围,无法精确表示这个值,这使得JavaScript 不适合进行科学和金融方面的精确计算
2. Axios请求库内部会使用JSON.parse方法进行一次数据转换,转换的过程中如果遇到’大数’就会出现问题
解决方案:
1.安装插件
npm i json-bigint -S
简单实用
import JSONbig from 'json-bigint'
const str = '{ "id": 1253585734669959168 }'
console.log(JSON.parse(str)) // 1253585734669959200
console.log(JSONbig.parse(str).id.toString()) //1253585734669959168
应用
import JSONbig from 'json-bigint'
const request = axios.create({
// 当前项目的所有接口都是以这个地址开头的
baseURL: 'http://xxxxxx.cn/',
transformResponse: [function (data) {
// Do whatever you want to transform the data
// console.log('transformResponse', data)
try {
return JSONbig.parse(data)
} catch (err) {
console.log('JSONbig转换出错', err)
return data
}
}]
})
注意:不要忘记return