You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用JSONPath过滤功能查询非数组子对象的属性满足指定条件

问题原因

JSONPath的过滤语法[?(判断表达式)]的默认作用对象是数组,你将它用在了非数组的queue对象后面,绝大多数JSONPath实现不会主动遍历普通对象的子属性来执行过滤规则,所以$.queue[?(@.size>0)]无法匹配到结果。你之前写的$.queue[size]本质是属性访问的简写写法,等价于$.queue.size,不属于过滤语法范畴,所以可以正常返回数值。

解决方法

你可以直接对size属性的值应用过滤规则,使用以下查询语句即可:
$.queue.size[?(@ > 0)]

效果验证

  • 当queue.size为13时,查询会返回[13],符合匹配要求
  • 当queue.size为0时,查询会返回空数组,无匹配结果

如果你的JSONPath实现不支持直接对单个值做过滤,也可以用兼容写法:
$[?(@.queue.size > 0)].queue.size
该语句会先判断根节点下的queue.size是否满足大于0的条件,满足时返回对应size值,否则返回空。

内容的提问来源于stack exchange,提问作者piro91

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 23:27:00