首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Errors: Cyclic object value

信息

代码语言:javascript
复制
TypeError: cyclic object value (Firefox)
TypeError: Converting circular structure to JSON (Chrome)

错误类型

TypeError

什么地方出了错?

调用JSON.stringify()循环对象引用结构时,不能将其转换为字符串。

例子

在如下的圆形结构中

代码语言:javascript
复制
var a = {};
var b = {}; 
a.child = b;
b.child = a;

JSON.stringify() 将失败

代码语言:javascript
复制
JSON.stringify(a);
// TypeError: cyclic object value

在进行字符串化之前,您需要检查循环对象引用。例如,通过指定替代者函数作为第二个参数JSON.stringify()

代码语言:javascript
复制
seen = []; 

var replacer = function(key, value) {
  if (value != null && typeof value == "object") {
    if (seen.indexOf(value) >= 0) {
      return;
    }
    seen.push(value);
  }
  return value;
};

JSON.stringify(a, replacer); 
// "{"child":{}}"

或者,您可以使用已经为此场景编写的库或实用程序功能。例如Douglas Crockford 有cycle.js

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com