zoukankan      html  css  js  c++  java
  • 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 类型的对象,对象数据是它内部的一个算法处理之后的,我们要做的就是在使用的时候转为字符串来使用。

  • 相关阅读:
    flutter 强制竖屏和横屏
    Error: ADB exited with exit code 1
    UVA-11426
    个人信息表格题
    Kubernetes 机器内核问题排查
    ETCD
    ubuntu16.04在使用vim的时候,中文乱码
    Kubernetes Ingress-Nginx 实现蓝绿、灰度发布
    MySQL高可用架构MHA+ProxySQL实现读写分离和负载均衡
    ElasticSearch
  • 原文地址:https://www.cnblogs.com/gooldns/p/14352812.html
Copyright © 2011-2022 走看看