首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NodeRed解析tasmota对象

NodeRed解析tasmota对象
EN

Stack Overflow用户
提问于 2021-12-06 17:39:12
回答 1查看 413关注 0票数 0

我在和NodeRed玩。带有Tasmota的Esp32发送mqtt消息,如下所示:

代码语言:javascript
复制
{
  "Time": "2021-12-05T20:46:40",
  "MJ_HT_V1391ef1": {
    "mac": "582d34684ef1",
    "Temperature": 22.6,
    "Humidity": 50.9,
    "DewPoint": 11.9,
    "Battery": 100,
    "RSSI": -92
  },
  "MJ_HT_V1385877": {
    "mac": "582d31385557",
    "Temperature": 22,
    "Humidity": 53.3,
    "DewPoint": 12,
    "Battery": 85,
    "RSSI": -86
  }
}

请!如何在不知道名称MJ_HT_V1391ef1和MJ_HT_V1385877的情况下获得它们,而且json可以有更多相似的对象,而只有两个对象。此外,我还需要获得像MJ_HT_V1391ef1.mac或MJ_HT_V1391ef1.Temperature这样的信息。

如果我用的是

代码语言:javascript
复制
var zprava=msg.payload;
msg.payload=zprava["MJ_HT_V1391ef1"]["Temperature"];

它起作用了,我得到了22.6的值。但我需要更有活力。会通过json的循环吗?

我花了将近5天的时间来寻找解决方案。请帮帮我。

EN

回答 1

Stack Overflow用户

发布于 2022-01-23 20:44:02

JSONata去营救!请看这里:

_

因此,您可以在一个$keys节点,然后是一个split节点中,检查密钥名是否以MJ开头(再次使用JSONata):

$contains(payload, /^MJ/)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70249581

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档