How to JSON.stringify an array of objects
var data = { };
data.onlineUsers = getUsersInRoom();
var string = JSON.stringify(data);
Would this work for you?
edit
I just noticed your error is circular type, your user or room object is probably creating a circular reference.
User > Room > User > Room etc...
Comments
-
crmepham almost 2 years
I am attempting to
JSON.stringify()
the following key/value pair, where the value is an array of objects.var string = JSON.stringify({onlineUsers : getUsersInRoom(users, room)});
This is incorrect and gives the following error:
var string = JSON.stringify({onlineUsers : getUsersInRoom(users, room)});
^
TypeError: Converting circular structure to JSON
This is the method:
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; }
Added
users
data structure:[ { id:1, username:"", room:"room 1", client: { sessionId:1, key:value } }, { // etc } ]
Added function to add user to users array.
function addUser(client) { clients.push(client); var i = clients.indexOf(client); if (i > -1) { users.push({ id : i, username : "", room : "", client : clients[i] }); } }
Added screen capture of JavaScript array containing an object as well as key/value pairs inside an object.
Added screen capture of the clients array containing WebSocket objects.
How do I correctly "stringify"
{key: arrayOfObjects[{key:value,key:{}},{},{}]}
?