如何 JSON.stringify 对象数组
Posted
技术标签:
【中文标题】如何 JSON.stringify 对象数组【英文标题】:How to JSON.stringify an array of objects 【发布时间】: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:,,]
?
【问题讨论】:
能否请您也添加您的客户端数据结构。你的数组中一定有包含循环引用的东西。 【参考方案1】:var data = ;
data.onlineUsers = getUsersInRoom();
var string = JSON.stringify(data);
这对你有用吗?
编辑
我刚刚注意到您的错误是循环类型,您的用户或房间对象可能正在创建循环引用。
用户 > 房间 > 用户 > 房间等...
【讨论】:
以上是关于如何 JSON.stringify 对象数组的主要内容,如果未能解决你的问题,请参考以下文章
如何 JSON.stringify 嵌套的对象数组 [关闭]