我试图将数据推送到浏览器。如何将JSON转换为Javascript数组?然后,我可以使用它来选择第一个键值或对对象进行排序。
以下是浏览器/客户端的代码:
socket.on('notification', function (data) {
$.each(data.users,function(index,user) {
usersList = user.Bob // How to select unknown value/key? Example user[0]
});
$('#koersgroot').html(usersList);
});
这是JSON格式
{
"users": [
{
"Bob": 1,
"Alice": 2,
"Carol": 3
}
]
}
答案 0 :(得分:1)
JSON是数据的表示。在JS中它是Object数据类型,而JSON可以表示为string。当您通过WebSockets发送任何内容时 - 即字符串或二进制文件。
但是socket.io允许你发送Object(JSON),实际上它将该String字符串化,然后在接收端将它解析回JSON。
为了发送json,只需发出对象:
var obj = {
users: [
{
"foo": 4,
"bar": 2
}
]
};
socket.emit('notification', obj);
socket.io将为您进行序列化/反序列化。所以在客户端:
socket.on('nitification', function(obj) {
// obj is an object
obj.users[0].foo == 4; // true
});
你的问题显然是缺乏理解的结果,所以你需要阅读更多内容,并查看示例,因为你提出的方式以及术语只是“错误”。