我在HTML文件中有以下代码:
socket.on('message',function(data) {
console.log('Received a message from the server!',data);
$('#data').append('<br />'+data.toString('utf8'));
});
某些点的服务器发送一个字符串或向客户端发送一个JSON对象但是当我尝试使用JSON语法来访问数据时,例如/ $('#data').append(data.people[0].name])
它会抛出一个错误,说人们未定义。我知道发送的数据是有效的。如何让我的函数了解它处理JSON?
答案 0 :(得分:2)
你可以做到
socket.json.send({data:'pepew'})
在服务器端发送json,它将自动由socket.io解码。如果你想将json发送到服务器,你可以简单地执行
socket.json.send({data:'boom'});
:D api
答案 1 :(得分:1)
如果您的data
作为JSON字符串返回,那么您可能需要先将其解析为JSON。这可以使用$.parseJSON
方法完成,如下所示:
socket.on('message',function(data) {
var myData = $.parseJSON(data);
// the remainder of your code
});
您可以在JQuery documentation中找到有关$.parseJSON
的更多信息。另外值得注意的是,如果运行代码的浏览器具有JSON.parse
的本机实现,$.parseJSON
方法将使用它。
答案 2 :(得分:0)
您必须首先解析JSON数据:
json = JSON.parse(data);
json.people[0].name;
或至少使用:
json = eval('(' + data + ')');