JSON.stringify方法报错:Converting circular structure to JSON

2023-05-25,,

别以为JSON.parse(JSON.stringify(data))做深拷贝无敌,对于以下这种情况,当你需要保留父级对象,即 对象存在循环引用,就会报错

   var a = [
{
"id":5,
"pid":2,
"categoryName":"搜索行为",
},
{
"id":6,
"pid":3,
"categoryName":"购买力",
}
]
a.map(item => {
item.parent = item
return item
})
let b = JSON.stringify(a)
console.log(b)

 报错

 

正确的方法是:

   var a = [
{
"id":5,
"pid":2,
"categoryName":"搜索行为",
},
{
"id":6,
"pid":3,
"categoryName":"购买力",
}
]
a.map(item => {
item.parent = JSON.parse(JSON.stringify(item)) // 注意这里
return item
})
let b = JSON.stringify(a)
console.log(b)

  更精简的情况:

    var a = {};
a.o = a;
console.log(JSON.stringify(o))

  

JSON.stringify方法报错:Converting circular structure to JSON的相关教程结束。

《JSON.stringify方法报错:Converting circular structure to JSON.doc》

下载本文的Word格式文档,以方便收藏与打印。