json-bigint處理大數字問題


js里面的整數有安全范圍,即最大能顯示的范圍,超過了這個范圍可能會精度丟失

Number.MAX_SAFE_INTEGER  //值為9007199254740991

json-bigint:可以像JSON.parse一樣方便轉換(json-bigint 是一個第三方包,它可以幫我們很好的處理這個問題。)

 1 //導入
 2 import JSONbig from 'json-bigint'
 3 
 4 //可以通過axios的transformResponse方法,這個方法的作用是在傳遞給then/catch前,允許修改響應數據
 5 
 6 //axios在這里默認把響應體從json字符串轉成了js對象
 7 axios.defaults.transformResponse = [function (data) {
 8 
 9 
10     try {
11     //作用1:把json字符串轉為js對象
12     //作用2:把里面的大數字做安全處理
13      return JSONbig.parse(data)
14     }catch(){
15     return data;
16     }
17     //return data;
18 }]
19 
20 //如果不寫這個方法,返回的數據是自動就轉為json對象的了,如果寫了,就要自己轉為對象,即return JSON.parse(data)

只要經過json-bigint轉換后的id,直接toString(),就能得到真實的id


json-bigint 會把超出 JS 安全整數范圍的數字轉為一個 BigNumber 類型的對象,對象數據是它內部的一個算法處理之后的,我們要做的就是在使用的時候轉為字符串來使用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM