JSON编码对象数组

时间:2012-12-20 20:20:26

标签: arrays json object socket.io

我有一组像这样的对象:

[{}, {}, {}]

我需要通过Socket.io传递这个数组。 Socket.io将数组转换为JSON,我不断地将循环结构转换为JSON错误。

继承我目前的代码:

for (var i = 0; i < 5; i++) {
    num = randRange(0, cards[type].length);
    playerCards.push(cards[type][num]);
}
socket.emit('updateCards', playerCards);

有没有人知道解决这个问题?

由于

1 个答案:

答案 0 :(得分:0)

如果您尝试执行以下操作,则会看到相同的错误:

for (var i = 0; i < 5; i++) {

    num = randRange(0, cards[type].length);
    playerCards.push(cards[type][num]);
    JSON.stringify(cards[type][num]) 
}

//socket.emit('updateCards', playerCards);

标签属性可能是罪魁祸首。为了使JSON序列化器工作,您不能在被序列化的对象中有任何循环引用。一种选择是从标记对象中提取所需的信息并改为创建自定义对象。