js中的bigint类型转化为json字符串时报无法序列化的问题
网上查了一下,解决这个问题的思路就是将bigint类型的数据转化为字符串,这样就能正确转化为json字符串了。对于一个是bigint的变量,直接使用toString方法就可以转化为字符串了,但是bigint变量在一个对象中,那么我们就需要一个更加通用的方法,网上看到一个很好的封装好的方法,如下。
export default function objReplacer(key, value) { if (typeof value === 'bigint') { return value.toString(); } else if (typeof value === 'object') { for (const k in value) { if (typeof value[k] === 'bigint') { value[k] = value[k].toString(); } else if (typeof value[k] === 'object') { value[k] = objReplacer(k, value[k]); // 递归处理嵌套对象 } } } return value; }
import objReplacer from "src/utils/bingintToString"
JSON.stringify(res,objReplacer)