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

∥☆過路亽.° 提交于 2019-12-03 16:53:57

      别以为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))

  

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!