我试图在表格中的流中显示一些收到的数据。我正在使用以下代码:
function notify(data){
var actual_JSON = JSON.parse(data);
console.log(actual_JSON["Pipekey"]+" - "+actual_JSON["workdate"]+" total: "+actual_JSON);
}
暂时只是检查和报告值。 这是每行的控制台输出:
undefined - undefined total:{“Pipekey”:1521,“workdate”:“2016/12/01 八点51分00" 秒, “测量”:{ “顺序”:201794, “热”:4043, “批”:12, “管”:1, “wallThickness”:6.246, “outletDiameter”:89,“长度“:10000}}
为什么我不能按值访问字典成员呢?我该怎么办呢?
我被暗示问题是解析数据中存在一些不规则的字符,所以我也在服务器中包含了通过WebSocket发送数据的代码:
function multiStep(myConnection, data) {
var i=0;
clearInterval(myTimer);
myTimer=setInterval(function() {
console.log("eseguo il timer "+i+"/"+data.length);
if (i<data.length){
var element=JSON.stringify(data[i]);
console.log("provo a mandare elemento: "+element);
try {
myConnection.send(element);
console.log("mandato elemento");
} catch(err) {
console.log('Websocket error: %s', err);
i=data.length;
clearInterval(myTimer);
}
i++;
} else {
console.log("finito il loop");
clearInterval(myTimer);
}
}, 3000);
}
我还尝试打印字符串的所有字符的ascii,但未能在用户报告的位置找到任何不规则的内容:
app.js:58 str:0 ascii:48
app.js:58 str:4 ascii:52
app.js:58 str:3 ascii:51
app.js:58 str:, ascii:44
app.js:58 str:\ ascii:92
app.js:58 str:" ascii:34
app.js:58 str:l ascii:108
app.js:58 str:o ascii:111
app.js:58 str:t ascii:116
app.js:58 str:\ ascii:92
app.js:58 str:" ascii:34
app.js:58 str:: ascii:58
app.js:58 str:1 ascii:49
app.js:58 str:2 ascii:50
app.js:58 str:, ascii:44
但是对于控制角色应该是一个有趣的颜色变化。 如果我将帖子中的字符串复制到记事本+,实际控制字符实际上是通过移动指针显示的。 所以我很困惑,因为我不知道这个角色来自哪里,以及如果列出字符的ascii没有列出它但是相反地解释它以改变显示的颜色如何摆脱它。
答案 0 :(得分:0)
您的数据包含一些损坏的字符。如果您将下面的代码段编辑并进行编辑,则会在已注释掉的数据字符串中看到一些浮动的红点(如\·"lot\":12
和\"tube\":1·
中所示)。该数据字符串下方的数据字符串具有相同数据的干净版本,并且工作正常。
function notify(data){
var actual_JSON = JSON.parse(data);
console.log(actual_JSON["Pipekey"]+" - "+actual_JSON["workdate"]+" total: "+actual_JSON);
}
/*
data = "{\"Pipekey\":1521,\"workdate\":\"01/12/2016 08:51:00\",\"measurement\":{\"order\":201794,\"heat\":4043,\"lot\":12,\"tube\":1,\"wallThickness\":6.246,\"outletDiameter\":89,\"length\":10000}}";
*/
data = "{\"Pipekey\":1521,\"workdate\":\"01/12/2016 08:51:00\",\"measurement\":{\"order\":201794,\"heat\":4043, \"lot\":12,\"tube\":1,\"wallThickness\":6.246,\"outletDiameter\":89,\"length\":10000}}";
notify(data);
&#13;
答案 1 :(得分:0)
这个问题很简单,因为在将索引文件中的数据中继到帧时会出现过多的字符串。一旦删除它,Json就可以解析它并返回一个对象。