Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将websocket中的evt.data转换为jSON字符串或Javascript中的普通字符串_Javascript_Json_Websocket - Fatal编程技术网

将websocket中的evt.data转换为jSON字符串或Javascript中的普通字符串

将websocket中的evt.data转换为jSON字符串或Javascript中的普通字符串,javascript,json,websocket,Javascript,Json,Websocket,最近我玩了websocket,效果很好 在具有onmessage(evt)功能的客户端中,我从服务器端收到一条消息, 消息实际上是一种JSON格式,如下所示: {"Properties":{"name":"0a67d327-1f78-475e-b58a-d16706782223","publicname":"Page1"}} 然后在客户端(带有javascript的html5),我使用以下方式访问数据: var page=evt.data; 然后我访问JSON对象 document.getE

最近我玩了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有关的任何其他解决方案。WebSocket数据可以是string、Blob或ArrayBuffer。在您的情况下,它很可能是一个字符串,因此您需要首先解析它:

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

解析不起作用,可能是浏览器问题,我刚刚发现从服务器发送的字符串显然缺少JSON格式,比如缺少括号,因此eval无法转换