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

如何编写JSONPath表达式按条件提取非helptext类型同级节点的id值

JSONPath过滤问题解答

你的表达式问题分析

  • 逻辑合理性:思路符合需求,核心逻辑是先筛选name为p的节点,校验该节点下contenttype取值不为helptext后提取对应@id的文本值,逻辑方向没有问题。
  • 语法正确性:不符合主流JSONPath实现的语法规范。jsonpath.com使用的标准Goessner版JSONPath不支持在过滤表达式?()内部嵌套第二层?()过滤查询,你写的@.children[?(@.name=='contenttype')].text!='helptext'属于嵌套过滤写法,因此工具无法正确解析返回结果。

可用的正确表达式

$.children[?(@.name=='p' && @.children[?(@.name=='contenttype')][0].text != 'helptext')].children[?(@.name=='@id')][0].text

表达式说明:每个p节点下仅有一个contenttype子节点,因此对@.children[?(@.name=='contenttype')]返回的数组取下标[0]获取目标节点,再取text属性做判断,规避了嵌套过滤的语法问题,执行后会返回你预期的["id2"]结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 18:54:04