这是一个典型的循环引用的错误,一个对象里引用自己就会立刻得到这个错误:

obj = { x:555, y: "hi" };
obj.myself = obj; try{
json = JSON.stringify(obj);
alert(json)
}catch(e){
alert(e);
}

演示:http://jsfiddle.net/walker/tqcNm/18/

这时候可以利用stringify的第二个参数,传一个处理器进去:

obj = { x:555, y: "hi" };
obj.myself = obj; alert(print(obj)); //这次把自身引用去掉再试试
obj.myself={a:'hello'};
alert(print(obj)); function print(obj){
try{
seen = [];
json = JSON.stringify(obj, function(key, val) {
if (typeof val == "object") {
if (seen.indexOf(val) >= 0) return;
seen.push(val)
}
return val;
});
return json;
}catch(e){
return e;
}
}

演示:http://jsfiddle.net/walker/tqcNm/19/

JSON.stringify报cyclic object value错误的更多相关文章

  1. (转)JS之——解决IE6、7、8使用JSON.stringify报JSON未定义错误的问题

    https://blog.csdn.net/l1028386804/article/details/53439755 在通过JavaScript将对象类型的参数通过JSON.stringify转换成字 ...

  2. 有意思的JSON.parse()、JSON.stringify()

    前言 现在JSON格式在web开发中非常重要,特别是在使用ajax开发项目的过程中,经常需要将后端响应的JSON格式的字符串返回到前端,前端解析成JS对象值(JSON 对象),再对页面进行渲染. 在数 ...

  3. JSON.parse 和 JSON.stringify 详解

    JSON格式,(简写JavaScript Object Notation),是一种用于数据交换的文本格式,书写简单. 基于JavaScript原生语法,能够序列化对象.数组.数值.字符串.布尔值和 n ...

  4. 解决JSON.stringify()在IE10下无法使用的问题

    今天在IE10下遇到了JSON.stringify()无法使用的问题,错误信息为:'JSON' is undefined . 开始以为是没有添加json2.js引用的原因.后来发现,其他地方也没添加j ...

  5. JSON.stringify(),JSON.parse(),toJSON()方法使用

    JSON.stringify(),将value(Object,Array,String,Number...)序列化为JSON字符串    JSON.parse(), 将JSON数据解析为js原生值   ...

  6. JSON.stringify()的不常见用法

    1.JSON.stringify()只序列化可遍历属性(enumerable=true) var obj = {}; Object.defineProperties(obj, { 'foo': { v ...

  7. $tojson和json.stringify的区别

    JSON.stringify(),将value(Object,Array,String,Number...)序列化为JSON字符串 JSON.parse(), 将JSON数据解析为js原生值 toJS ...

  8. JSON.stringify转化报错

    两种方式会导致该错误:1.json格式数据存在循环调用.   举个例子: var obj = { title: '标题'}obj.content = obj;JSON.stringify(obj); ...

  9. 在nodejs中 Object的toString()方法 querystring的stringify() JSON.stringify()

    刚学nodejs,做到一个例子:发送简单的HTTP请求.遇到一个问题,客户端给服务端发送的消息到服务端,服务端收不到消息,确切的说是“”. 以下是服务端代码:server.js const http ...

随机推荐

  1. js生成验证码并且验证

    <html> <head> <title>验证码</title> <style type="text/css"> #co ...

  2. [转]mysql如何利用Navicat 导出和导入数据库

    MySql是我们经常用到的数据,无论是开发人员用来练习,还是小型私服游戏服务器,或者是个人软件使用,都十分方便.对于做一些个人辅助软件,选择mysql数据库是个明智的选择,有一个好的工具更是事半功倍, ...

  3. mybatis拦截器实现分页功能的示例讲解

    import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import jav ...

  4. 解决nginx reload失败

    1. 失败提示信息 nginx: [error] open() : No such file or directory) 2. 解决方法 /usr/local/nginx/sbin/nginx -c ...

  5. 【转】使用scipy进行层次聚类和k-means聚类

    scipy cluster库简介 scipy.cluster是scipy下的一个做聚类的package, 共包含了两类聚类方法: 1. 矢量量化(scipy.cluster.vq):支持vector ...

  6. C语言 · 最长字符串

    算法训练 最长字符串   时间限制:1.0s   内存限制:512.0MB      求出5个字符串中最长的字符串.每个字符串长度在100以内,且全为小写字母. 样例输入 one two three ...

  7. Selenium学习笔记

    Selenium是一个强大的自动化测试工具,它的核心思想是通过JavaScript嵌入的方式直接操纵页面的DOM来模拟手工测试工作. Selenium IDE,一个Firefox插件,可以在Firef ...

  8. HTML5游戏引擎排行榜

    个好的游戏引擎,能够大大简化游戏的开发实现,html5gameengine.com网站对国内外所有HTML5游戏引擎进行了排名,排名不仅给出了价格.流行度.分数以及最新发布时间,通过点击引擎名称可以了 ...

  9. Sublime Text 3中文乱码问题的解决(最有效)

    Sublime Text 3中文乱码问题的解决(最有效) Sublime Text 3是很好的代码编辑器,没有之一,因为她的性感高亮代码配色,更因为它的小巧,但是它默认不支持GBK的编码格式,因此打开 ...

  10. 宏晶STC单片机使用STC-ISP串口烧录失败的原因与解决方法汇总

    官方网址: http://www.stcisp.com/q_and_a_stcisp.html 个人小结 芯片:STC12C5A60S2 封装:LQFP-48 晶振大小:SD22.1184M 最小系统 ...