JSON.stringify出现 "Converting circular structure to JSON"

摘要:
==null){if(cache.indexOf(value)!

JSON.stringify() 我们很熟悉了,将一个对象转换为json形式的字符串.

但是如果你在浏览器控制台中输出JSON.stringify(window). 如果期望输出一段文字, 可能会失望了. 事实上, 会输出结果如下:

JSON.stringify出现 "Converting circular structure to JSON"第1张

错误信息很明显了, 对象中有循环引用. 解决方案如下:

参考链接:http://stackoverflow.com/questions/11616630/json-stringify-avoid-typeerror-converting-circular-structure-to-json

// Demo: Circular reference
var o = {};
o.o = o;

// Note: cache should not be re-used by repeated calls to JSON.stringify.
var cache = [];
JSON.stringify(o, 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; // Enable garbage collection

JSON.stringify说明 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify

至于出现循环引用的原因,参考如下:

JSON.stringify出现 "Converting circular structure to JSON"第2张

原文链接:

http://stackoverflow.com/questions/4816099/chrome-sendrequest-error-typeerror-converting-circular-structure-to-json

免责声明:文章转载自《JSON.stringify出现 "Converting circular structure to JSON"》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇guice 整合ninja framework(七)python下matplotlib的subplot的多图显示位置的问题下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

uniAPP Android平台完整更新与热更新

“)}plus.nativeUI.alert(“引用资源更新完成!”,function(){plus.runtime.restart();})},函数{plus.nativeUI.closeWaiting();//如果{console.log;plus.native UI.alert;}}否则{console.log;加上.nativeUI.alert;}}...

Git安装配置(完整版)

/usr/bin/bashcd/var/www/aunsetGIT_DIRgitpulloriginmaster为您提供了另一个权限:chmod755/var/gitdata/a。git/books/post-receivechowngit:git/var/gitdata/a在git/hooks/post-receive模式下,客户端提交代码,服务器项目可以...

移动端媒体查询的一些尺寸参考

device-width是设备实际的宽度,不会随着屏幕的旋转而改变,因此并不适合开发响应式网站。比如iphone5s的屏幕分辨率宽为640,由于retina显示策略,当scale设置为1的时候,对应的media中取到的width为320,当scale设置为0.5的时候,width为640,而device-width始终是320。总结1.device-widt...

mongodb 占用内存及解决方法

解决方案是限制Swap的使用:[root@mongodb~]#Sysctl wvm。swap=0查看内存最常用的命令是空闲的:[root@mongodb~]#Free totalused freesharedbuff/cacheavailableEm:78250931925992443Swap:000当新手看到used列中的值太大而Free列中的数值太小时,...

MAC连接安卓手机通过adb指令安装apk

安卓apk可以通过adb命令安装。在MAC计算机上,如果你想通过命令行在Android手机上安装apk,你需要执行以下操作:;总之,将Android SDK的adb命令添加到环境变量中,然后通过adbin stall将apk从计算机安装到手机。最终安装过程中出现问题:无效APKfile解决方案:将要安装的APK文件放入平台工具文件,然后再次输入命令以成功安装...

如何让 ESLint 同时检测 js 和 ts

但是ESLint默认使用Espree作为其解析器,在某些情况下不支持TypeScript语法。另外,TypeScript是JavaScript超集,有更多的语法,ESLint本身提供的规则无法满足。ESLint有一项overrides的配置,可以为某个文件或者某组文件进行覆盖配置。因此,我们可以设置ts文件使用@typescript-eslint/parse...