JSONPath 查询
使用 JSONPath 表达式从 JSON 数据中查询和提取数据,支持递归查找、切片、过滤等高级语法
📄 JSONPath Query
📐 工作原理与说明
用 JSONPath 表达式查询 JSON 数据。
- 语法:
$为根,.取属性,[]取下标,*通配,..递归下降。 - 过滤:
[?(@.price < 10)]按条件筛选数组元素。 - 类比:JSONPath 之于 JSON,相当于 XPath 之于 XML。
- 注意:不同实现(Goessner 原版与各语言库)在细节上存在差异。
Query and extract from JSON using JSONPath in your browser — filter and pick fields instantly.
常用表达式:
⏳ 等待输入
匹配: 0
耗时: 0ms
📋 查询结果
等待查询...
📖 JSONPath 语法参考
| 表达式 | 说明 | 示例 |
|---|---|---|
$ | 根节点 | $ - 整个 JSON |
@ | 当前节点 | @.price - 当前节点的 price |
.property | 子属性 | $.user.name |
..property | 递归查找 | $..id - 所有层级的 id |
* | 通配符 | $.store.* - store 下所有子元素 |
[index] | 数组索引 | $.items[0] |
[start:end] | 数组切片 | $.items[1:3] |
[?(expr)] | 过滤表达式 | $.items[?(@.price>10)] |
length() | 数组长度 | $.items.length() |
📚 深度解析:JSONPath 查询器
💡 常见使用场景
- 从大 JSON 提取子集。
- 在日志或大响应里定位字段:用 $.result.items[0].name 直接取出目标值,不必层层展开 JSON 树。
查询
`$.store.book[?(@.price<10)].title` 取低价书名。
❓ 常见问题(FAQ)
- 与 XPath 区别?
- JSONPath 面向 JSON,语法更简洁。
- 为什么用 * 通配取不到深层字段?
- 因为 * 只匹配一层。$.a.*.c 能取到 a 下一级的 c,更深的层级需用递归下降 ..(如 $..c 匹配任意深度的 c)。另外过滤表达式(如 $.items[?(@.price>10)])并非所有实现都支持,使用前先确认所用库的语法兼容度。
⚠️ 使用说明与注意事项
- 本工具纯前端运行,数据不会上传到服务器
- 建议在主流浏览器(Chrome/Safari/Firefox/Edge)中使用
- 计算结果仅供参考,请以实际应用场景为准
▼
工具简介
JSONPath 查询。专为开发者打造的在线工具,纯前端运行,代码不离开浏览器。