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

如何使用JSONPath同时提取assignee的id与name字段值

提取所有assignee的id和name字段值(JSONPath实现)

原始JSON数据

{
  "tasks": [
    {
      "id": "task_1",
      "name": "task_1_name",
      "assignees": [
        {
          "id": "assignee_1",
          "name": "assignee_1_name"
        }
      ]
    },
    {
      "id": "task_2",
      "name": "task_2_name",
      "assignees": [
        {
          "id": "assignee_2",
          "name": "assignee_2_name"
        },
        {
          "id": "assignee_3",
          "name": "assignee_3_name"
        }
      ]
    }
  ]
}

(注:原始输入的JSON存在语法缺失,已补全闭合括号)

当前问题

使用$.tasks[*].assignees[*].id只能提取到所有assignee的id数组:

[
  "assignee_1",
  "assignee_2",
  "assignee_3"
]

需要得到每个assignee的id和name依次排列的一维数组:

[
  "assignee_1",
  "assignee_1_name",
  "assignee_2",
  "assignee_2_name",
  "assignee_3",
  "assignee_3_name"
]

解决方案

使用JSONPath的多字段提取表达式,先获取每个assignee的id和name组成的子数组,再将结果扁平化:

1. JSONPath表达式

$.tasks[*].assignees[*].[id, name]

该表达式会返回嵌套数组:

[
  ["assignee_1", "assignee_1_name"],
  ["assignee_2", "assignee_2_name"],
  ["assignee_3", "assignee_3_name"]
]

2. 扁平化处理

将上述嵌套数组通过语言内置的扁平化方法(比如JavaScript的Array.flat()、Python的sum(arr, [])等)处理,即可得到目标一维数组。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 17:35:27