2 Answers

临时解决方案

  • 安装json-bigint
    npm install json-bigint
  • 编写json-bigint.d.ts
declare module 'json-bigint' {
  interface JSONBigInt {
    parse(text: string, reviver?: (key: any, value: any) => any): any;
    stringify(
      value: any,
      replacer?: (key: string, value: any) => any,
      space?: string | number
    ): string;
  }

  const JSONbig: JSONBigInt;
  export default JSONbig;
}

  • 使用JSONbig.parse解析
import JSONbig from 'json-bigint';
....
const parsedData = JSONbig.parse(dataString);

第一个接口:/team/:teamUUID/plugin/permissionrule/add
第二个接口:/team/:teamUUID/plugin/permissioninfo/list
现象:
(1)第一个接口返回的id、permission_id 与 第二个接口返回的值不一致
(2)第一个接口返回的id、permission_id是数字类型,第二个接口返回的是string类型
原因:
第一个接口字段用的数字类型,但是数字超过了javascript的最大值,所以反序列化成对象时丢失了精度,第二个接口因为是string类型,所以没问题。