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)

 

posted @ 2024-01-23 09:38  数星观月  阅读(57)  评论(0编辑  收藏  举报