2012-12-20 91 views
0

我有對象的數組像這樣:對象的JSON編碼陣列

[{}, {}, {}] 

我需要經由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

數據將是'{id:int,name:string,tag:Object}'這些對象是多維的,包含其他對象 –

回答

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序列化程序能夠正常工作,在被序列化的對象中不能有任何循環引用。一種選擇是從標籤對象中提取所需的信息,然後創建一個自定義對象。