TypeError: Converting circular structure to JSON 解决js中自身循环引用对象数组深度复制问题

漆雕升
2023-12-01
public class Parent
{
    public string Name{get;set}
    
    publict List<Parent> Children{get;set;}
}

如上,这是一个自己引用自己的类,如果把这种类组成的数组传到前台然后JSON.parse(JSON.stringify(对象数组))的话,就会报错TypeError: Converting circular structure to JSON.

解决办法如下:

//假设对象数组为data1
var cache = [];
var copyData=JSON.stringify(data1, function(key, value) {
    if (typeof value === 'object' && value !== null) {
        if (cache.indexOf(value) !== -1) {
            // Circular reference found, discard key
            return;
        }
        // Store value in our collection
        cache.push(value);
    }
    return value;
});
cache = null;

这样就可以深度复制出这个数组了。

 类似资料: