我正在尝试使用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
答案 0 :(得分:0)
我喜欢这个解决方案: http://www.rahulsingla.com/blog/2010/05/jquery-encode-decode-arbitrary-objects-to-and-from-json/
答案 1 :(得分: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
都没有工作。所以我认为这是最佳解决方案。