我通过MQTT从物联网中提取数据。我在解析数据时遇到问题,并且能够在单独的变量中查看数据的每个部分。
这是调试的给定输出:
{"payload":"Gc4FaAAAFwBoAA==","port":223,"counter":4527,"dev_eui":"00DEAD00BEEF0002","metadata":
[{"frequency":902.3,"datarate":"SF10BW125","codingrate":"4/5","gateway_timestamp":1299905004,"channel":0,"server_time":"2016-09-
03T18:40:46.106713105Z","rssi":-31,"lsnr":12.3,"rfchain":0,"crc":1,"modulation":
"LORA","gateway_eui":"1234567887654321","altitude":0,"longitude":0,"latitude":0}
]}
解析json中的代码:
var data = JSON.parse(msg.payload);
msg.payload={};
msg.payload = data.metadata.rssi;
msg.payload = data.payload;
msg.payload = data.payload.split(1,3);
return msg;
答案 0 :(得分:0)
首先,不要在函数节点中将字符串转换为JSON,还有一个特定的预安装标准节点(名为JSON节点,这会将字符串转换为JSON或JSON,根据输入将stings转换为)托盘将为你做到这一点。
其次,您将msg.payload
设置为3次,这样您才能获得最后一部分。
第三,data.metadata
是一个数组,因此您需要指定要访问的数组中的哪个条目,例如data.metatdata[0].rssi
您没有连接到功能输出,所以您期望输出什么?