我已经成功运行节点红色并从几个不同的PLC系统中提供它,
我有这样的有效载荷。
{"d":779,"dt":3,"ts":"2018-04-05T19:54:12.930758Z","q":18}
字段会分解为。
d=779 dt=3 ts=2018-04-05T19:54:12.930758Z q=18
我一直试图解析字符串并将其分解(即使只是一个字段" d")。
我一直在尝试使用splice和split的组合来编写一个解析数据的函数。
有没有人有这个简单的解决方案?我甚至使用正确的节点进程吗?
我知道这完全没有用,但这是尝试读取第一个字段。它没有填充,因此需要从冒号开始,以逗号结束。
var str = msg.payload;
var th = str.slice(5,-1);
th = th.split(",");
msg.payload[0] = parseFloat(th[0]);
return [ msg.payload[0]];
拥有源MQTT缓冲区:
[123,34,100,34,58,51,48,54,56,44,34,100,116,34,58,50,44,34,116,115,34,58,34,50,48,49,56,45, 48,52,45,49,50,84,48,56,58,53,48,58,49,56,46,49,54,50,48,48,48,90,34,44,34,113, 34,58,49,57,50,125,0]
最后的零显然是违规的价值:
我试图用功能
删除它var data = msg.payload;
console.log("payload data: length = " + data.length);
data = data.trim();
console.log("trimmed data: length = " + data.length);
msg.payload = JSON.parse(data);
return msg;
现在我遇到TypeError:data.trim不是函数
Flow看起来像: enter image description here 现在得到
谢谢, 凯文