如何JSON.stringify一个对象数组

时间:2016-01-29 10:12:06

标签: javascript arrays json object stringify

我正在尝试BuildConfig.KEY_MY_PROP以下键/值对,其中值是一个对象数组。

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
 }
]

添加了包含对象的JavaScript数组的屏幕截图以及对象内的键/值对。

enter image description here

添加了包含WebSocket对象的clients数组的截屏。 enter image description here

如何正确“字符串化”function addUser(client) { clients.push(client); var i = clients.indexOf(client); if (i > -1) { users.push({ id : i, username : "", room : "", client : clients[i] }); } }

1 个答案:

答案 0 :(得分:3)

var data = { };
data.onlineUsers = getUsersInRoom();

var string = JSON.stringify(data);

这对你有用吗?

修改

我刚注意到您的错误是循环类型,您的用户或房间对象可能正在创建循环引用。

  

用户&gt;房间&gt;用户&gt;房间等...