将evt.data从websocket转换为JSON字符串或Javascript中的纯字符串

时间:2012-03-20 10:55:13

标签: javascript json websocket

最近我玩了websocket,效果很好,

在客户端使用onmessage(evt)功能,我从服务器端收到一条消息, 该消息实际上是一种JSON格式,如下所示:

{"Properties":{"name":"0a67d327-1f78-475e-b58a-d16706782223","publicname":"Page1"}}

然后在客户端(使用javascript的html5)我使用:

访问数据
var page=evt.data;

然后我访问JSON对象

document.getElementById('name').innerHTML=page.Properties.name;

但它只是不起作用,我甚至使用eval函数,但它仍然无法正常工作, 我确实使用alert(页面)检查页面;

我想知道evt.data是不是字符串数据而是字节, 有人有解决方案将字节转换为字符串吗? 或任何其他可能与此evt.data

有关的解决方案

1 个答案:

答案 0 :(得分:3)

WebSocket数据可以是字符串,Blob或ArrayBuffer。在你的情况下,它很可能是一个字符串,所以你需要先解析它:

var page = JSON.parse(evt.data);
console.log("Properties.name: " + page.Properties.name);