Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.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
Javascript 如何解析这些数据?_Javascript_Json_Getelementbyid - Fatal编程技术网

Javascript 如何解析这些数据?

Javascript 如何解析这些数据?,javascript,json,getelementbyid,Javascript,Json,Getelementbyid,我从WebSocket收到如下材料: {"sensorValue":{"id":5168,"roadStationId":23401,"name":"OHITUKSET_5MIN_LIUKUVA_SUUNTA2_MS2","oldName":"ohitukset_5min_liukuva_suunta2_MS2","shortName":"MTila2","sensorValue":69,"sensorUnit":"***"}} {"sensorValue":{"id":5125,"roadSt

我从WebSocket收到如下材料:

{"sensorValue":{"id":5168,"roadStationId":23401,"name":"OHITUKSET_5MIN_LIUKUVA_SUUNTA2_MS2","oldName":"ohitukset_5min_liukuva_suunta2_MS2","shortName":"MTila2","sensorValue":69,"sensorUnit":"***"}}
{"sensorValue":{"id":5125,"roadStationId":23401,"name":"KESKINOPEUS_5MIN_LIUKUVA_SUUNTA2","oldName":"averageSpeed2","shortName":"km/h2","sensorValue":83,"sensorUnit":"km/h"}}
function connect() {
     var url = "ws://...";
     var socket = new WebSocket(url);
     socket.onopen = function (event) {
         console.info('Socket is open');
     }
     socket.onmessage = function(message) {
         addMessage(message);
     };
}


function addMessage(message) {
     var myJSON = JSON.stringify(message.data);
     var obj = JSON.parse(myJSON);
     document.getElementById("sensorValue").innerHTML = obj.sensorValue;
}
我想做的是得到name和sensorValue的值。到目前为止,我有如下代码:

{"sensorValue":{"id":5168,"roadStationId":23401,"name":"OHITUKSET_5MIN_LIUKUVA_SUUNTA2_MS2","oldName":"ohitukset_5min_liukuva_suunta2_MS2","shortName":"MTila2","sensorValue":69,"sensorUnit":"***"}}
{"sensorValue":{"id":5125,"roadStationId":23401,"name":"KESKINOPEUS_5MIN_LIUKUVA_SUUNTA2","oldName":"averageSpeed2","shortName":"km/h2","sensorValue":83,"sensorUnit":"km/h"}}
function connect() {
     var url = "ws://...";
     var socket = new WebSocket(url);
     socket.onopen = function (event) {
         console.info('Socket is open');
     }
     socket.onmessage = function(message) {
         addMessage(message);
     };
}


function addMessage(message) {
     var myJSON = JSON.stringify(message.data);
     var obj = JSON.parse(myJSON);
     document.getElementById("sensorValue").innerHTML = obj.sensorValue;
}
现在,无论我做什么,我都会得到:

未捕获的TypeError:无法将属性“innerHTML”设置为null

我试过几个getElementryById的web教程,它们都很好用


为什么我会出现这个错误?

我认为你把两件事混在一起了:

  • 您的响应数据是JSON格式的,您希望从中读取特定的值。您可以通过使用点运算符引用所需的字段来执行此操作。 例如:
    object.fieldName;
    (在您的示例中为
    obj.sensorValue

  • 您希望使用以下命令在HTML页面中显示特定值:
    document.getElementById(“sensorValue”).innerHTML=value\u to\u display
    。 要使其工作,您需要有一个id为“sensorValue”的HTML元素。您得到的错误告诉您,没有这样的元素。 例如,您可以将
    添加到页面中


  • 你的HTML中有id为sensorValue的元素吗?首先:在
    JSON之后直接调用
    JSON.parse
    。stringify
    是不必要的。首先不要调用
    JSON.stringify
    。其次,这个错误意味着id为sensorValue的元素不存在。确保它确实存在(通过创建或更正传递的参数)。错误与解析数据无关(如果不序列化,则不必进行解析)。Nit:无法访问“JSON”格式的数据“使用点表示法。JSON是文本。必须先解析它才能将其转换为JavaScript对象,此时它不再是JSON。OP似乎只有一个对象。不需要
    JSON.stringify
    JSON.parse