JSON.stringify抛出错误

Ali*_*Ali 1 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' }
]
Run Code Online (Sandbox Code Playgroud)

我试图将产品数组(上面)编码为JSON字符串,我收到以下错误:TypeError:将循环结构转换为JSON

更新(来自评论):

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

ffl*_*ent 7

TypeError:将循环结构转换为JSON

在对象中有一个循环时会发生此错误.例如 :

var obj = {};
obj.a = {b:obj};
Run Code Online (Sandbox Code Playgroud)

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

所以,JSON.stringify(obj)引发了一个错误.

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