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

如何通过JSON Path根据已知ENTRYID获取匹配的Tasks.Id值

JSONPath查询问题解决方案

问题原因说明

你编写的两种写法分别存在以下问题:

  1. 第一种写法逻辑符合需求,报错通常是因为所用的JSONPath解析器对过滤器内的多级固定下标引用兼容性差,或是使用了宽松相等运算符==触发解析规则差异
  2. 第二种写法存在低级拼写错误:Activites拼写错误(少了字母i,正确拼写为Activities),且额外嵌套的过滤器属于冗余逻辑,反而会增加解析失败概率

正确查询语法

以下两种写法均适配绝大多数主流JSONPath解析器(Jayway、Goessner等),可以直接使用:

通用兼容写法(推荐)

使用严格相等运算符===避免解析器隐式类型转换问题:

$.Tasks[?(@.Activities[0].Entry.AnswersFlat[0].ENTRYID === '95B53C6CF6104F0E86B5744083A22FAD')].Id

老旧解析器适配写法

用括号包裹判断逻辑消除解析歧义:

$.Tasks[?((@.Activities[0].Entry.AnswersFlat[0].ENTRYID) == '95B53C6CF6104F0E86B5744083A22FAD')].Id

验证结果

针对你提供的测试JSON,上述两种写法均会正确返回匹配的Id值:

["652a187f2a584a0f84aaadb9016cfa4b"]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 13:27:03