[ "Go in Action", "TypeScript" ]
关于 JSONPath 查询提取器
JSONPath 查询工具在浏览器本地对 JSON 数据执行 JSONPath 表达式查询,实时显示匹配结果和命中数量。JSONPath 是类似 XPath 的 JSON 查询语言,支持美元符号根节点、点号子节点访问、方括号索引和切片、星号通配符、双点递归下降和方括号问号条件过滤表达式。内置常用表达式示例可一键填入,如查找所有书名的查询语句和按价格筛选的条件表达式。语法要点:$.store.book[*] 用下标与通配选中多个元素,$..price 用递归下降一次取到任意深度的 price 字段,而 [?(@.price<30)] 做条件过滤,@ 指向当前元素、父级用 @['parent'] 访问。适用于从深层嵌套的 API 响应中提取特定字段、调试 JSON 查询逻辑和数据筛选。查询结果支持以 JSON 格式复制,匹配到的每个节点同时显示完整路径表达式,方便在代码中直接引用。调试时先用内置示例熟悉语法,再改造成自己的查询;复杂过滤建议拆成多步执行、逐步缩小范围,比一次写完长表达式更容易定位问题。
使用方法
- 打开「JSONPath 查询提取器」
- 输入或粘贴待处理的内容
- 根据需要调整输出选项
- 点击「运行」按钮,结果实时显示
- 复制或导出结果
使用场景
- 调试接口响应 — 从复杂响应中精确取出某个字段,验证数据是否符合预期。
- 批量提取数据 — 用 $.price 这类表达式一次性取出所有同名字段。
- 条件筛选 — 用 [?(@.price<30)] 过滤符合条件的元素,快速定位目标数据。
- 学习 JSONPath — 配合示例边写边看结果,快速掌握 JSONPath 语法。
- 配置数据映射 — 为低代码/数据管道设计字段映射时,先用本工具验证路径是否正确。
- 提取错误详情 — 用 $.errors[*].message 一条命令收集校验响应里所有面向用户的错误文案。
常见问题
支持哪些 JSONPath 语法?
支持主流 JSONPath 语法,包括 $ 根、. 子节点、[] 下标、* 通配、. 递归下降,以及 [?(@.field)] 过滤表达式。
查询结果为什么是数组?
JSONPath 可能匹配多个节点,因此结果统一以数组形式返回,即使只命中一个也会包裹在数组中。
表达式写错会怎样?
若表达式非法会提示「无效的 JSONPath」,修正后即可实时重新查询,不会影响原始 JSON。
能处理大 JSON 吗?
可以,查询在本地完成。不过超大数据的复杂递归查询可能略有延迟,建议先用本站 JSON 格式化精简数据。
和 jq 一样吗?
理念相似但语法不同。JSONPath 更接近 XPath 风格;如果你熟悉 jq,可以把本工具当作浏览器端的可视化替代。
@ 和 $ 有什么区别?
$ 指 JSON 文档的根,@ 指当前被求值的元素(多用于问号过滤里),两者用途不同,混用容易导致查询结果为空或报错。
$.data[*].id 为什么选不中?
通常是路径与真实结构不一致。常见原因:data 是 null 或对象而非数组(此时应写 $.data.id);数组里的元素自身没有 id 这个字段;或结构里存在两个同名但层级不同的 data。若不确定层级,先用 $.data 打印原始结构核对,再用递归下降 $..id 一次取出所有名叫 id 的字段,对照本处的命中数与路径列,逐层缩小到准确的写法。把整条表达式拆成从 $ 根逐步下探的小步来验证,比一次写完整条更容易定位是哪一层出了偏差。