JSON.stringify 抛出错误
Posted
技术标签:
【中文标题】JSON.stringify 抛出错误【英文标题】:JSON.stringify throws error 【发布时间】:2011-12-27 17:49:20 【问题描述】:var Products = [
id: 0, product: 'Sour Apple', price: 10, count: 1, product_thumb: 'resources/css/apple.png' ,
id: 1, product: '30 dsfdf', price: 20, count: 1, product_thumb: 'resources/css/croissant.png' ,
id: 2, product: 'Discount Coffee', price: 30, count: 1, product_thumb: 'resources/css/coffecup.png' ,
id: 3, product: '30 Donut Combo', price: 40, count: 1, product_thumb: 'resources/css/donut.png' ,
id: 4, product: 'Invisishield', price: 50, count: 1, product_thumb: 'resources/css/apple.png' ,
id: 5, product: 'Pink Cupcake', price: 60, count: 1, product_thumb: 'resources/css/icecream.png' ,
id: 6, product: 'Strawberry Cone', price: 70, count: 1, product_thumb: 'resources/css/softy.png'
]
我正在尝试将产品数组(上图)编码为 JSON 字符串,但出现以下错误:TypeError: Converting circular structure to JSON
更新(来自评论):
我想要做的是,我声明一个 var product = [];然后当用户将产品添加到购物车时,我会这样做: var productObject = id: id, product: name, price: price, count: 1, product_thumb: img ;用户说完成后,我将数组转换为 json 并将其发送到我的 Web 服务。问题是当我做 JSON.stringify 它给出了那个错误。 product.push(productObject);
【问题讨论】:
你用什么浏览器?您是否使用 JSON 库? 我使用的是 Chrome,我没有使用任何 JSON 库。 你能分享你写的示例代码吗? 【参考方案1】:TypeError:将循环结构转换为 JSON
当您的对象中有循环时会发生此错误。例如:
var obj = ;
obj.a = b:obj;
如果你浏览 obj,你有那个循环:obj->a->b->obj->...
因此,JSON.stringify(obj) 引发错误。
当您包含 DOM 对象(窗口、文档...)时,也会发生这种错误,因为它们或它们的子对象引用它们(自身)。
【讨论】:
Serializing object that contains cyclic object value【参考方案2】:什么浏览器?什么环境?只需将您的数据插入 Chrome Inspector,就可以正常工作..
【讨论】:
在 chrome 中试试这个。我的数组包含产品对象。 var productObject = id: id, product: name, price: price, count: 1, product_thumb: img ;产品.push(productObject);这是我动态填充对象数组的方式。我上面给出的示例只是为了让对象了解它的外观。 好的,让我用更好的方式解释你。我想做的是,我声明一个 var product = [];然后当用户将产品添加到购物车时,我会这样做: var productObject = id: id, product: name, price: price, count: 1, product_thumb: img ;用户说完成后,我将数组转换为 json 并将其发送到我的 Web 服务。问题是当我做 JSON.stringify 它给出了那个错误。 product.push(productObject); 我的错,我无法解释这个问题。问题是我在 sencha 下使用它.. 我所要做的就是: var arr = []; for (i = 0; i以上是关于JSON.stringify 抛出错误的主要内容,如果未能解决你的问题,请参考以下文章
JSON.stringify 抛出 RangeError: Invalid string length for large objects