node-red 可以处理多少个嵌套选项?
How many nested options can node-red handle?
我想知道 node-red 中 json 格式的文件是否有最大寻址深度。
比如我有这样一条消息
{ topic: 'i/devices/i/up',
payload:
{ payload: 'oo',
port: 2,
counter: 54,
metadata:
[ { frequency: 868.3,
datarate: 'SF12BW125',
codingrate: '4/5',
gateway_timestamp: 4201744244,
channel: 1,
server_time: '2016-07-01T09:50:39.725658999Z',
rssi: -63,
lsnr: 8.2,
rfchain: 1,
crc: 1,
modulation: 'LORA',
gateway_eui: 'oo',
altitude: 0,
longitude: 0,
latitude: 0 } ] },
qos: 2,
retain: false,
_msgid: '81960b41.7e69f8',
metadata: <Buffer 00> }
如果我想获得 metadata 选项,我在节点红色的函数中解决它,比如
msg.payload.rssi = msg.payload.metadata["rssi"];
return msg;
但是,当我将调试功能附加到它时,我没有得到我想要的 rssi 值,我做错了什么?那个字段不能这样写吗?
提前致谢
问候
您访问的 JSON 对象的深度没有限制。
您错过了选择器中的数组索引。
您需要的是:
msg.payload.rssi = msg.payload.metadata[0].rssi;
return msg;
这是因为元数据对象是一个数组,因此可以包含元数据对象的多个实例。
另请注意,Node-RED 编辑器中的调试选项卡会截断较长的对象,如果您需要查看整个对象,最简单的方法是选中 "output to console" 框,整个消息将被打印出来也到控制台。
我想知道 node-red 中 json 格式的文件是否有最大寻址深度。
比如我有这样一条消息
{ topic: 'i/devices/i/up',
payload:
{ payload: 'oo',
port: 2,
counter: 54,
metadata:
[ { frequency: 868.3,
datarate: 'SF12BW125',
codingrate: '4/5',
gateway_timestamp: 4201744244,
channel: 1,
server_time: '2016-07-01T09:50:39.725658999Z',
rssi: -63,
lsnr: 8.2,
rfchain: 1,
crc: 1,
modulation: 'LORA',
gateway_eui: 'oo',
altitude: 0,
longitude: 0,
latitude: 0 } ] },
qos: 2,
retain: false,
_msgid: '81960b41.7e69f8',
metadata: <Buffer 00> }
如果我想获得 metadata 选项,我在节点红色的函数中解决它,比如
msg.payload.rssi = msg.payload.metadata["rssi"];
return msg;
但是,当我将调试功能附加到它时,我没有得到我想要的 rssi 值,我做错了什么?那个字段不能这样写吗?
提前致谢
问候
您访问的 JSON 对象的深度没有限制。
您错过了选择器中的数组索引。
您需要的是:
msg.payload.rssi = msg.payload.metadata[0].rssi;
return msg;
这是因为元数据对象是一个数组,因此可以包含元数据对象的多个实例。
另请注意,Node-RED 编辑器中的调试选项卡会截断较长的对象,如果您需要查看整个对象,最简单的方法是选中 "output to console" 框,整个消息将被打印出来也到控制台。