0

我正在尝试使用 socket.io 创建我的第一个 node.js 程序,我想存储聊天历史记录,然后当用户加入时,将聊天历史记录推送到他的浏览器。我有聊天保存和推送,发送的 json 如下所示:

[
    [
        {
            "username": "Warren2",
            "text": "Test"
        },
        {
            "username": "Warren2",
            "text": "Test2"
        },
        {
            "username": "Warren2",
            "text": "Test3"
        }
    ]
]

在我的 html 页面上,我有一个 javascript 有这个

socket.on('updatehistory', function(data) {

}

我放在那里的代码将在推送 updatehistory 消息时执行。我是一个n00b,很迷茫哈哈。这是我尝试过的:

socket.on('updatehistory', function (data) {
   $.each(json.results, function(username,text){
      $('#conversation').append('<b>'+ username + ':</b> ' + text + '<br>');
  });
});

这是来自 node.js 的 updatehistory 事件的确切调试消息

debug - websocket writing 5:::{"name":"updatehistory","args":[[{"username":"W
arren2","text":"Test"},{"username":"Warren2","text":"Test2"},{"username":"Warren
2","text":"Test3"}]]}

有人可以帮我弄清楚如何解析它(最好用jquery)。谢谢 :D

4

2 回答 2

0

我喜欢这个解决方案: http ://www.rahulsingla.com/blog/2010/05/jquery-encode-decode-arbitrary-objects-to-and-from-json/

于 2012-07-03T21:06:30.650 回答
0

如果您想自己完成所有操作,我会给您一种遍历数据的方法,它只有 5 行代码。这是第一个。我已经提醒用户名和密码,以向您展示它在示例中确实有效.

http://jsfiddle.net/shivkumarganesh/gfff5/

 $(document).ready(function(){
        var k=[
    [
        {
            "username": "Warren1",
            "text": "Test"
        },
        {
            "username": "Warren2",
            "text": "Test2"
        },
        {
            "username": "Warren3",
            "text": "Test3"
        }
    ]
];

for(i in k)
    {
    var l=k[i];
     for (j in l)
    {
        alert("Username:"+l[j].username+" --  Message:"+l[j].text);
    }
    }​
    });

既没有JSON.parse()也没有$.parseJson工作。所以我认为这是最好的解决方案。

于 2012-07-03T22:00:44.037 回答