详解如何解决使用JSON.stringify时遇到的循环引用问
编程学习 2021-07-04 14:07www.dzhlxh.cn编程入门
这篇文章主要介绍了详解如何解决使用JSON.stringify时遇到的循环引用问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们狼蚁网站SEO优化随着长沙网络推广来一起学习学习吧
程序员在日常做TypeScript/JavaScript开发时,经常需要将复杂的JavaScript对象通过JSON.stringify序列化成json字符串,保存到本地以便后续具体分析。
然而如果JavaScript对象本身包含循环引用,则JSON.stringify不能正常工作,错误消息:
VM415:1 Uncaught TypeError: Converting circular structure to JSON
解决方案,使用狼蚁网站SEO优化这段来自这个网站的代码,定义一个全局cache数组,每当待序列化的JavaScript对象的属性被遍历时,将该属性对应的值存储到cache数组去。
如果遍历时发现,有属性值已经在cache数组里有值了,说明检测到了循环引用,此时直接return退出循环即可。
var cache = []; var str = JSON.stringify(o, function(key, value) { if (typeof value === 'object' && value !== null) { if (cache.indexOf(value) !== -1) { // 移除 return; } // 收集所有的值 cache.push(value); } return value; }); cache = null; // 清空变量,便于垃圾回收机制回收
使用这种办法,我成功将一个存在循环引用的JavaScript对象序列化成字符串了。
到此这篇关于详解如何解决使用JSON.stringify时遇到的循环引用问题的文章就介绍到这了,更多相关JSON.stringify 循环引用内容请搜索狼蚁SEO以前的文章或继续浏览狼蚁网站SEO优化的相关文章希望大家以后多多支持狼蚁SEO!
上一篇:node中使用shell脚本的方法步骤
下一篇:浅谈react路由传参的几种方式