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

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

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

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

参考链接: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

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

原文链接:

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

时间: 2024-11-18 03:08:54

JSON.stringify出现 "Converting circular structure to JSON"的相关文章

浅谈JSON.stringify 函数与toJosn函数和Json.parse函数

JSON.stringify 函数 (JavaScript) 语法:JSON.stringify(value [, replacer] [, space]) 将 JavaScript 值转换为 JavaScript 对象表示法 (Json) 字符串. value 必需. 要转换的 JavaScript 值(通常为对象或数组). replacer 可选. 用于转换结果的函数或数组. 如果 replacer 为函数,则 JSON.stringify 将调用该函数,并传入每个成员的键和值. 使用返回值

JSON.stringify()执行出错是如何产生的?

本文和大家分享的主要是JSON.stringify()执行出错相关内容,一起来看看吧,希望对大家学习json有所帮助. Uncaught TypeError: Converting circular structure to JSON 这个错误是执行JSON.stringify() 时抛出的异常信息 JSON.stringify()用于将json格式转换为string格式,与JSON.parser()相辅相成. 两种方式会导致该错误: 1.json格式数据存在循环调用. 举个例子: var ob

有了JSON.stringify(),处理json将变得更简单!!

之前处理json 需要拼接json字符串,但是,如果用上JSON.stringify()的话,忘了json语法以没关系了..... 1 @{ 2 ViewBag.Title = "GetStr"; 3 } 4 5 <html> 6 <head> 7 <title> </title> 8 <script type="text/javascript" src="~/Scripts/jquery-1.7.1.

jQ实现JSON.stringify(obj)方法

jQstringify是使用jQuery实现的JSON.stringify(obj)方法 代码如下:<script type="text/javascript" src="http://keleyi.com/keleyi/pmedia/jquery/jquery-1.10.2.min.js"></script> function jQstringify( obj ) {var arr = [];$.each( obj, function( k

JSON.stringify,JSON.parse方法

var obj={name:'zhangsan',age:'18'};/** js对象--->JSON字符串* JSON.stringify(js对象) --转化为--> JSON字符串* */console.log(obj);//Object {name: "zhangsan", age: "18"}console.log(JSON.stringify(obj));//{"name":"zhangsan",&qu

有关javascript中的JSON.parse和JSON.stringify的使用一二

有没有想过,当我们的大后台只是扮演一个数据库的角色,json在前后台的数据交换中扮演极其重要的角色时,作为依托node的前端开发,其实相当多的时间都是在处理数据,准确地说就是在处理逻辑和数据(这周实习最大的收获). 而对于依托json格式传输的数据,处理数据时,用到JSON.strinify和JSON.parse的概率是百分之百.使用这两个方法so easy,但是你真的知道其中一些相关的细节以及其中牵涉到的javascript的知识么? JSON.parse用于从一个字符串中解析出json对象.

关于vue中JSON.parse(JSON.stringify(...))使用深拷贝问题

一般我们单独用JSON.parse()或JSON.stringify() 今天在学vue看到JSON.parse(JSON.stringify(...))的用法,这里研究一下: 首先分别说下他们的用法: JSON.parse()  是将字符串中的对象解析出来 例:  var str = "{'name':'huahua','age':'22'}";  JSON.parse(str); var obj = {name:"hua",age: 26};  JSON.str

Js中JSON.stringify()与JSON.parse()与eval()详解及使用案例

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式.因为采用独立于语言的文本格式,也使用了类似于C语言家族的习惯,拥有了这些特性使使JSON称为理想的数据交换语言,作用是易于阅读和编写,同时也易于机器解析和生成(一般用于网络传输速率). 一:JSON.parse(); 作用:将json字符串转换成json对象 语法:JSON. parse(text[,reviver]). 参数: text:必选,一个有效的json字符串. reviver:可选. 返回值:

JSON.stringify实例应用—将对象转换成JSON类型进行AJAX异步传值

在上一篇中,对JSON.stringify()方法有了初步的认识,并且做了一些简单的例子.本篇将进一步将JSON.stringify用在复杂些的实例中,例如如下需求: 在进jQuery AJAX异步传值时,用JSON.stringify()函数将数组转换成(JSON:JavaScript Object Notation 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式),再传到一般处理程序中,在一般处理程序中,把得到的值进行反序列化Deserialize<T>(v