Javascript 如何解析这些数据?
我从WebSocket收到如下材料: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
{"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教程,它们都很好用
为什么我会出现这个错误?我认为你把两件事混在一起了:
object.fieldName;
(在您的示例中为obj.sensorValue
)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
。