HarmonyOS使用axios进行网络请求,当返回结果中数据含有超长数字时,数字会被科学计数处理

使用axios进行网络请求时,发现接口返回的结果中,数字类型且比较长的数据会被科学计数处理;例如 1787318013093416962 会被处理成 1787318013093417000 ,导致这边拿到的数据不对。

HarmonyOS
2024-09-13 10:18:46
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Heiang

由于axios 内部会对后端返回的数据进行 JSON.parse 的操作,JSON.parse会导致超长数字的精度丢失,可以通过重写transformResponse方法,修改返回数据,导入json-bigint包,使用JsonBigInt.parse(data)转换返回数据。

demo:

axios<string, AxiosResponse<string>, null>({ 
  url: 'https://www.huawei.com/info', 
  method: 'get', 
  responseType: 'array_buffer', 
  transformResponse:(data)=>{ 
    return JsonBigInt.parse(data) 
  } 
}).then((res: AxiosResponse) => { 
  // 处理请求成功的逻辑 
})
分享
微博
QQ
微信
回复
2024-09-13 18:02:45
相关问题
HarmonyOS 大数科学计数
18浏览 • 1回复 待解决
网络请求数据后的处理
409浏览 • 1回复 待解决
HarmonyOS 如何处理axios请求
36浏览 • 1回复 待解决
网络请求数据处理问题
409浏览 • 1回复 待解决
基于@ohos/axios网络请求能力
529浏览 • 1回复 待解决
HarmonyOS 关于http请求返回结果
91浏览 • 1回复 待解决
网络请求使用gzip压缩数据
2167浏览 • 1回复 待解决
mysql 对于中文+数字的排序
3588浏览 • 1回复 待解决