vue接口返回数字类型位数超过16精度丢失解决办法
我是在main.js页面解决的
安装插件 json-bigint
npm i json-bigint
在main.js页面使用
import Vue from 'vue' import App from './App.vue'
import axios from '../node_modules/axios'//引入axios
Vue.prototype.$axios = axios//挂载axios
import JSONbig from 'json-bigint'//解决超过 16 位数字精度丢失问题
//axios.defaults.transformResponse 是axios拦截器,在后端返回的json数据序列化之前处理原始的数据
axios.defaults.transformResponse = [
//解决超过 16 位数字精度丢失问题
//在返回参数接收前进行处理
function(data) {
//data就是接口返回的原始数据
return JSON.parse(JSON.stringify(JSONbig.parse(data)))
/*
console.log(JSONbig.parse('{"value":12345678912345678912}'));
控制台输出类似
{
value: BigNumber
c: (2) [123456, 78912345678912]
e: 19
s: 1
}
页面显示 12345678912345678912
不影响使用
console.log(JSON.stringify(JSONbig.parse(JSONbig.parse('{"value":12345678912345678912}'))))
控制台输出 json 字符串
{"value":"12345678912345678912"}
可见已转成 json 字符串
再使用 JSON.parse()
console.log(JSON.parse(JSON.stringify(JSONbig.parse('{"value":12345678912345678912}'))))
控制台输出 json
{
value:"12345678912345678912"
}
*/
}
]
自用
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端