我刚刚开始在Sonarr Zigbee桥上使用Tasmota,并试图解释它吐出的数据。下面是一个例子:
{
"ZbReceived": {
"0x11FE": {
"Device": "0x11FE",
"Name": "DoorContact",
"Power": 1,
"Endpoint": 1,
"LinkQuality": 147
}
}
}如何在不知道/使用设备号(“0x11Fe”)的情况下对此处的信息进行寻址-例如,我想要获取设备名称、电源设置等。
我希望我可以做一些像ZbReceived1.Name这样的事情,但这不起作用。
有什么建议吗?
发布于 2020-09-24 02:01:04
您要查找的是Object.keys()函数(docs)
var devices = Object.keys(msg.payload);
var name = msg.payload[devices[0]].Name;
var power = msg.payload[devices[0]].Power;Object.keys(obj)将所有键的数组返回到JSON对象中(一层深),因此,因为我们知道msg.payload中只有一个键,所以可以在插槽0中访问它(数组总是从0开始索引)。
https://stackoverflow.com/questions/64026295
复制相似问题