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


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

      

  • 相关阅读:
    ACM学习历程—HDU1719 Friend(数论)
    封装的方法
    MySql-rules
    MySql
    java深入探究07-jsp
    java深入探究06
    Jquery
    Ajax
    java深入探究05
    Oracle——索引,序列,触发器
  • 原文地址:https://www.cnblogs.com/lovemomo/p/11803437.html
Copyright © 2020-2023  润新知