【发布时间】:2016-05-07 00:44:08
【问题描述】:
我正在尝试JSON.stringify() 以下键/值对,其中值是对象数组。
var string = JSON.stringify({onlineUsers : getUsersInRoom(users, room)});
这是不正确的,并给出以下错误:
var string = JSON.stringify({onlineUsers : getUsersInRoom(users, room)});
^TypeError:将循环结构转换为 JSON
这是方法:
function getUsersInRoom(users, room) {
var json = [];
for (var i = 0; i < users.length; i++) {
if (users[i].room === room) {
json.push(users[i]);
}
}
return json;
}
新增users数据结构:
[
{
id:1,
username:"",
room:"room 1",
client: {
sessionId:1,
key:value
}
},
{
// etc
}
]
添加了将用户添加到用户数组的功能。
function addUser(client) {
clients.push(client);
var i = clients.indexOf(client);
if (i > -1) {
users.push({
id : i,
username : "",
room : "",
client : clients[i]
});
}
}
添加了包含对象以及对象内的键/值对的 JavaScript 数组的屏幕截图。
添加了包含 WebSocket 对象的客户端数组的屏幕截图。
如何正确“字符串化”{key: arrayOfObjects[{key:value,key:{}},{},{}]}?
【问题讨论】:
-
能否请您也添加您的客户端数据结构。你的数组中一定有包含循环引用的东西。
标签: javascript arrays json object stringify