Websockets JSON到Javascript数组

时间:2014-02-20 22:08:33

标签: javascript json websocket socket.io

我试图将数据推送到浏览器。如何将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
        }
    ]
}

1 个答案:

答案 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
});

你的问题显然是缺乏理解的结果,所以你需要阅读更多内容,并查看示例,因为你提出的方式以及术语只是“错误”。