0

我有一个像这样的对象数组:

[{}, {}, {}]

我需要通过 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);

有谁知道解决这个问题的方法?

谢谢

4

1 回答 1

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);

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

于 2012-12-20T22:47:17.313 回答