利用json-bigint处理后台数据大数字问题
json-bigint
GitHub网址:https://github.com/sidorares/json-bigint
当我们在写项目的时候调用后台接口的地址需要接收一个id值例如:(id:9223372036854776000)
JavaScript 能够准确表示的整数范围在-2^53
到2^53
之间(不含两个端点),超过这个范围,无法精确表示这个值,这使得 JavaScript 不适合进行科学和金融方面的精确计算
浏览器会默认解析得到数值与原数值不匹配导致404问题
解决这个问题我们使用第三方插件JSON-BigInt
1. 安装
npm i json-bigint
2. 导入
var JSONbig = require('json-bigint')
3. 使用
JSONbig.parse()
将json格式字符串转化为对象与JSON.parse()类似
var json = '{ "value" : 9223372036854775807}'
// 将json字符串转为对象
console.log(JSON.parse(json))// 9223372036854776000
console.log(JSONbig.parse(json).value.toString())// 是一个对象 需要toSring() 9223372036854776000
JSONbig.stringify()
将对象转化为json格式字符串与JSON.stringify()类似
// 将对象还原为json格式的字符串
console.log(JSON.stringify(JSONbig.parse(json))) // {"value":"9223372036854775807"}改变了原数据的值的数据类型
console.log(JSONbig.stringify(JSONbig.parse(json)))// {"value":9223372036854775807} 没有改变原数据
通过 Axios 请求得到的数据都是 Axios 处理(JSON.parse)之后的,我们应该在 Axios 执行处理之前手动使用 json-bigint 来解析处理。Axios 提供了自定义处理原始后端返回数据的 API:transformResponse
。
import axios from 'axios'
var jsonBig = require('json-bigint')const request = axios.create({baseURL: 'http://ttapi.research.itcast.cn/', // 接口基础路径// transformResponse 允许自定义原始的响应数据(字符串)transformResponse: [function (data) {try {// 如果转换成功则返回转换的数据结果return jsonBig.parse(data)} catch (err) {// 如果转换失败,则包装为统一数据格式并返回return {data}}}]
})export default request
利用json-bigint处理后台数据大数字问题相关推荐
- ECharts 折线图柱状图混合双Y轴 利用ajax动态获取后台数据
效果图示如下 后台代码用的框架是SSM 双Y轴根据后台数据展示 大致代码如下: List<Map> findqushi(@Param("date_id") String ...
- SpringBoot前端Ajax以JSON格式获取后台数据
最近在用Thymeleaf做一个项目,耳边总是飘过前后端分离的话语,不得不去了解一下,在Thymeleaf里如何获取后端的json串,这里进行详细的讲解一下(困扰了我好久/哭了) 首先我们需要一个Co ...
- 前端Ajax以JSON格式获取后台数据
最近在用Thymeleaf做一个项目,耳边总是飘过前后端分离的话语,不得不去了解一下,在Thymeleaf里如何获取后端的json串,这里进行详细的讲解一下(困扰了我好久/哭了) 首先我们需要一个Co ...
- java ajax实现分页代码,jQuery实现分页功能(含ajax请求、后台数据、附完整demo)...
需求分析 1)需要首页,末页功能 2)有点击查看上一页,下一页功能 3)页码到当前可视页码最后一页刷新页面 实现思路 也是分为三部分处理 1)点击首页,末页直接显示第一页或者最后一页内容,当前页面为第 ...
- jQuery实现的分页功能,包括ajax请求,后台数据
一:需求分析 1)需要首页,末页功能 2)有点击查看上一页,下一页功能 3)页码到当前可视页码最后一页刷新页面 二:功能实现思路 也是分为三部分处理 1)点击首页,末页直接显示第一页或者最后一页内容, ...
- Django 前台通过json 取出后台数据
转载自:https://my.oschina.net/esdn/blog/814111 步骤1:后台数据通过 JSON 序列化成字符串 注意:1.json是1个字符串 2.通过json.dumps(' ...
- python爬百度翻译-Python爬取百度翻译(利用json提取数据)
本篇文章给大家带来的内容是关于Python爬取百度翻译(利用json提取数据),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 工具:Python 3.6.5.PyCharm开发工具. ...
- django 返回ajax html,Django 前台通过json 取出后台数据
前台通过json 取出后台数据 步骤1:后台数据通过 JSON 序列化成字符串 注意:1.json是1个字符串 2.通过json.dumps('xxx') 序列化成 1个字符串的 '字典对象' vie ...
- angularjs获取php数据类型,利用Angularjs从PHP读取后台数据
之前已经有很多方法可以通过angular进行本地数据的读取.以前的例子中,大多数情况都是将数据存放到模块的$scope变量中,或者直接利用ng-init定义初始化的数据.但是这些方法都只为了演示其他功 ...
最新文章
- oracle中lang能不能查找,oracle中的查询语句
- [转载] 唐浩民评点曾国藩家书(上)——一个不同凡庸的乡村农民
- winScp中文乱码设置
- c# getresponsestream返回byte[]_C#通过SharpZipLib库创建压缩文件
- ASP.Net Mvc 发布网站 (样式+图片问题)
- c++值传递和引用及指针传递区别
- 使用u盘安装linux操作系统原理
- 安装Linux无盘工作站
- Java Web应用程序开发-深入体验Java Web开发内幕之初步
- 打印和为sum的组合,动规法+DFS+迭代法
- ARM学习系列 ---- ARM公司简介
- Pixel2Mesh从单个RGB图像生成三维网格ECCV2018
- 如何从官网下载JDK安装包?
- 计算机桌面图标乱码,教您软件乱码怎么修复
- Qt QTextStream
- 开源的XAG迈向新征程
- AUTOSAR基础篇之DTC
- 基于KT6368A的双模蓝牙模块打印机的方案
- 队列的应用——短信模拟
- asp:ScriptManager
热门文章
- 安全开工,钓鱼软件再袭如何防范?
- Allegro如何设通孔Pin和Via的消盘操作指导
- Guava Predicate
- 两部门:推进电力中长期合同电子化,君子签赋能电力合同电子签
- 基于html的美食网站——速鲜站餐饮食品(HTML+CSS+JavaScript)大学生网页制作教程 表格布局网页模板 学生HTML静态美食网页设计作业成品 简单网页制作代码 学生美食网页作品...
- spring MVC组件开发-表单数据校验
- 【奇思妙想】20个从设计到功能都创意十足的小众网站
- java 08d_Java String.Format() 方法及参数说明
- 体系结构学习笔记---白话理解Tomasulo算法
- 快压找不到指定文件路径