跳到主要内容

JSONPath 提取器

用 JSONPath 从 JSON 提取任意字段

支持 $.key、['key']、[n]、[*] 通配,以及 ..key / .. 递归搜索。本地计算,不上传。

为什么需要 JSONPath 查询

接口返回一大坨 JSON,你只想要 data.list[0].user.name 那一个字段;或者要从几百条记录里筛出所有 status === "error" 的项。手写循环遍历又长又烦,JSONPath 一行就能表达「查哪里、取什么」。

本工具用类 JSONPath 的语法在 JSON 上做查询/提取,支持点路径、数组下标、* 通配、.. 递归下降、以及简单过滤,结果即时以 JSON 展示。

概念与公式

JSONPath 是 JSON 的查询语言,类比 XPath 之于 XML。常用语法:

  • $:根节点。
  • .key / ['key']:取对象字段。
  • [n]:取数组第 n 项(从 0 起)。
  • [*]:数组全部元素。
  • ..key:从任意深度递归找名为 key 的字段。
  • ..:递归所有节点。

本工具在完整 JSONPath 之上,对最常用子集做了稳健支持:点路径、下标、*.. 递归、以及 [?(...)] 形式的简单等值/包含过滤(示例会在界面提示)。

细分场景

  • 接口调试:从大响应里精准取字段,不再肉眼翻。
  • 数据提取:批量捞某类节点做二次处理。
  • 自动化脚本:先在本工具试出路径,再写进代码。

怎么用本工具

左侧贴 JSON,上方填路径表达式,下方即时显示匹配结果(JSON 数组)。路径非法会给出提示。可多次改表达式实时对比。

常见场景与实例

例:取嵌套字段 $.users[0].name → 第一个用户的名字。

例:递归找所有 id $..id → 文档里任意层级的 id 字段值集合。

相关工具:YAML ↔ JSONXML ↔ JSON

隐私说明

全程浏览器本地计算,不联网、不上传你粘贴的 JSON。

常见问题

JSONPath 怎么写?
以 $ 根开头:$.user.name 取对象字段;$.items[0] 取下标;$.items[*].id 遍历数组取每个元素的 id;$.list[-1] 取最后一个。本工具支持点路径、方括号下标、* 通配。
支持过滤表达式吗(如 ?(@.price>10))?
当前版本聚焦常用路径提取(点/下标/通配/遍历),复杂过滤谓词 ?(...) 暂不支持。多数「取每个元素的某字段」用 $.arr[*].field 即可满足。
结果是多个怎么显示?
匹配到多个值时会以 JSON 数组返回,方便你直接复制到代码里使用。只匹配一个则原样返回该值。
和 jq 什么关系?
JSONPath 是 JSON 的「查询路径」语法(类似 XPath 之于 XML),jq 是更强大的命令行处理器。本工具对应 JSONPath 的常用子集,适合快速取数。