JSON.stringify抛出错误

时间:2011-11-12 18:34:37

标签: javascript json

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:将循环结构转换为JSON

更新(来自评论):

我想做的是,我宣布一个var product = [];然后当用户将产品添加到购物车时,我会这样做:var productObject = {id:id,product:name,price:price,count:1,product_thumb:img};一旦用户说完了,我就把数组转换成json并发送到我的网络服务。问题是,当我执行JSON.stringify时,它会给出错误。 product.push(productObject);

2 个答案:

答案 0 :(得分:7)

  

TypeError:将循环结构转换为JSON

当您在对象中有一个循环时,会发生此错误。例如:

var obj = {};
obj.a = {b:obj};

如果你浏览obj,你就有了这个周期:obj-> a-> b-> obj-> ...

因此,JSON.stringify(obj)会引发错误。

当您包含DOM对象(窗口,文档......)时,也会发生这种错误,因为他们或他们的孩子引用它们(自我)。

答案 1 :(得分:0)

什么浏览器?什么环境?只需将您的数据插入Chrome Inspector,工作正常..

debug