json - 解决这个简单的(?)JSONPath
问题描述
我是这个话题的新手,但我希望你能帮助我。我想不出一个正确的 JSON 表达式来解决我的问题。
给定 JSON 结构(来自 zigbee2mqtt):
{
"message" : "announce",
"meta" : {
"friendly_name" : "Lamp1"
},
"type" : "device_announced"
}
我正在尝试什么:
if $.type == 'device_announced' then return the friendly_name
在这种情况下是
Lamp1
解决方案
如果我理解正确,您正在寻找这样的表达式:
$[?(@.type=='device_announced')].meta.friendly_name
因此,我们在type
s 上过滤与搜索字符串相等的根集合,然后向下钻取到friendly_name。你可以在这里在线测试。
注意:某些实现要求您将 JSON 包装在一个数组[ ]
中以允许这种过滤。
推荐阅读
- c# - 在 Tizen.NET Xamarin 应用程序上播放 HDHomeRun 流
- javascript - 创建一个网络表单,我可以将 excel 行/列粘贴到
- python - 使用带有双引号的某些键和值从 python 生成 YAML 文件
- spring - JMS 的 Spring Tomcat 配置(IBM MQ、Tomcat、Spring)
- c# - 如何设置 Observable 来观察属性?
- postgresql - 如何在 postgresql 9.2 中将表设置为 LOGGED?
- sql - "\N" 在 case when 语句中
- c - 当输入小于最大整数数时,代码不会运行
- python - int 对象不可下标,但它是一个列表
- java - 为什么使用 "" 而不是 ' ' 来输出空白?