解决后台返回数据有大数的转换问题

一、问题

1、定义后台返回数据, 模拟大数

const str = '[{"id": 3019871302004110900}, {"id": 3403763166642205205}, {"id": 3982321342271276890}]'

2、用JSON.parse转换,可以看到转换结果出现了问题,最后几位数字不一致

 二、原因

JS有效“安全数字”有范围,超出范围则可能出现精度问题

 三、解决

使用第三方包 json-bigint

 1、下载 json-bigint 包,在终端输入以下命令

npm i json-bigint
//若出现错误,用下面命令下载
npm i json-bigint -force

2、引入并使用 jsonBig.parse 进行转换

const jsonBig = require('json-bigint')({ storeAsString: true })
console.log(jsonBig.parse(str))

打印转换后的结果,成功解决问题

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值