使用jison解决JS处理后台返回的Number数据精度丢失

(一)前言

在拿到请求返回的数据的时候,不用json自带的那个parse方法,而是通过自己定义了一个json转换方法,然后再response给前端,这样一来前端拿到的数据就是一个动过手脚的json数据。

这个方法的确可以实现前端拿到的数据不出现精度丢失问题,但是再浏览器中的Preview上查看数据还是一个丢失的错误数据,这个是因为浏览器它用的还是自己原始的那个json parse方法

(二) 案例

api返回一个序列化的string,类似下面
在这里插入图片描述
从上面可以看出js,float会失去精度,将2440.3499999999999转为2440.35

(三) 解决方案

我们不使用浏览器的JSON.parse, 自定义个parse,将number转为string,当然我们可以借助于jison

  1. 安装依赖
yarn add jison --dev
  1. 新建文件
    在这里插入图片描述
    jsonlint.l

代码如下

int  "-"?([0-9]|[1-9][0-9]+)
exp  [eE][-+]?[0-9]+
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值