json.parse 转换数据 javascript 大于17位整数数据不准确问题

352 阅读1分钟

问题分析

  • 在做换热站项目的时候,接受后台传递数据时候,id键为大于17位的long类型
  • 前端使用打印出来数据大于17位后面就自动补0了

问题复现

// 源数据
const a = 123456789101112134

console.log(a)
// 输出 123456789101112130

解决方案

  1. 不是json数据,直接接受到数据转换为string类型就可以
  2. json数据,需要使用json-bigint直接转换就可以
// npm 或者 cdn引入

// npm 
import * as JSONbig from "json-bigint";
const a = '{"b":123456789101112130}'
const b = JSONbig.parse(a);
console.log(b);
  1. 让后台统一转换 返回string数据

其他