1

我是这个话题的新手,但我希望你能帮助我。我想不出一个正确的 JSON 表达式来解决我的问题。

给定 JSON 结构(来自 zigbee2mqtt):

{
  "message" : "announce",
  "meta" : {
    "friendly_name" : "Lamp1"
  },
  "type" : "device_announced"
}

我正在尝试什么:

if $.type == 'device_announced' then return the friendly_name

在这种情况下是

Lamp1

4

1 回答 1

2

如果我理解正确,您正在寻找这样的表达式:

$[?(@.type=='device_announced')].meta.friendly_name

因此,我们在types 上过滤与搜索字符串相等的根集合,然后向下钻取到friendly_name。你可以在这里在线测试。

注意:某些实现要求您将 JSON 包装在一个数组[ ]中以允许这种过滤。

于 2020-12-10T02:57:03.293 回答