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

嵌套JSONArray中条件JsonPath匹配问题求助

嵌套JSON中匹配特定value对应的id解决方案

给定目标JSON:

{
  "iterations": [
    {
      "id": "122",
      "parameters": [
        {
          "name": "Country",
          "value": "US"
        }
      ]
    },
    {
      "id": "123",
      "parameters": [
        {
          "name": "Country",
          "value": "India"
        }
      ]
    }
  ]
}

你之前尝试的两个JsonPath表达式之所以返回全部id,是因为内层过滤器的写法没有正确传递判断条件到外层数组筛选——内层的[?(@.value=='India')]只是尝试在参数数组里查找匹配项,但外层判断的是“这个表达式是否有结果”,而非“是否存在匹配的参数项”,只要迭代项有parameters数组,就会被判定为符合条件。

以下是两种可行的正确表达式:

  • 基于contains操作符(适用于Jayway等主流JsonPath实现):

    $.iterations[?(@.parameters contains {'value': 'India'})].id
    
  • 基于存在性检查(更通用的写法):

    $.iterations[?(length(@.parameters[?(@.value == 'India')]) > 0)].id
    

使用上述任一表达式,都会精准返回"123",即value为"India"对应的id值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 14:39:56