JSONPath 在线测试工具 - 实时查询与语法高亮
输入 JSON 和 JSONPath 表达式开始查询
历史记录
什么是 JSONPath?
JSONPath 是一种用于在 JSON 文档中定位和提取数据的查询语言,类似于 XML 的 XPath。它使用路径表达式来导航 JSON 结构,支持对象和数组的深层遍历。JSONPath 广泛应用于 API 数据处理、配置文件解析、数据提取和转换等场景。本工具提供实时查询测试、语法高亮、常用表达式库等功能,帮助您快速调试和验证 JSONPath 表达式。JSONPath 最初由 Stefan Goessner 在 2009 年提出,目前有多种实现版本,包括 JavaScript、Python、Java 等语言的库支持。
📋 JSONPath 常用表达式速查
$根节点$.子节点$.name..递归下降,选择所有匹配的节点$...price*通配符,匹配所有子节点$.store.*[]下标运算符(数组索引)$.books[0][start:end:step]数组切片$.books[0:2][?()]过滤器表达式$.books[?(@.price<10)][,]多个选择,合并结果$.books[*].title,*.author📋 使用建议和最佳实践
- 使用
$作为起始点,确保表达式从根节点开始 - 对于深层嵌套的 JSON 数据,使用
..递归下降可以快速定位目标节点 - 使用过滤器
[?()]可以对数据进行条件筛选,如价格范围、状态判断等 - 利用本工具的"常用 JSONPath"库可以快速套用预置的查询表达式
- 点击"示例"按钮可以加载预设的测试数据,快速验证您的 JSONPath 表达式
- 定期查看"历史记录"面板,可以快速回溯之前的查询操作
工具介绍
JSONPath 在线测试工具是一款强大的 JSON 数据查询利器,支持实时表达式测试、匹配结果高亮、常用表达式库等功能。无论您是 API 开发者需要从 JSON 响应中提取数据,还是数据分析师需要快速验证查询语句,本工具都能提供便捷高效的调试体验。内置丰富的常用 JSONPath 表达式模板,涵盖对象访问、数组筛选、递归搜索等常见场景,支持格式化、历史记录等功能。
使用方法
- 1输入 JSON 数据
在左侧编辑框中输入或粘贴您的 JSON 数据内容,可以点击"格式化"按钮自动格式化 JSON 结构。
- 2输入 JSONPath 表达式
在右侧的 JSONPath 输入框中输入您的查询表达式,或使用"常用 JSONPath"库中的预设模板快速填充。
- 3查看查询结果
工具会实时显示匹配结果,包括数据类型(对象、字符串、数字等)、值和路径。点击结果项可单独复制。
- 4使用历史记录
所有查询的历史记录会自动保存,点击历史记录可以快速恢复之前的 JSONPath 表达式和对应的数据内容。
使用技巧
- 使用右侧<strong>"常用 JSONPath"</strong>库可以快速套用预置的 JSONPath 表达式模板,避免从零编写
- 点击<strong>"示例"</strong>按钮可以加载预设的测试数据,快速体验 JSONPath 查询功能
- 在 JSONPath 中使用 <code>*.</code> 可以选择所有子属性,如 <code>$.store.*</code>
- 使用过滤器 <code>[?(@.price<10)]</code> 可以对数组进行条件筛选
- 本工具支持 CodeMirror 编辑器的<strong>格式化</strong>和<strong>换行切换</strong>功能,提升编辑体验
- 定期查看<strong>"历史记录"</strong>面板,可以快速回溯之前的查询操作
常见问题
JSONPath 和 JSON 有什么区别?
JSON(JavaScript Object Notation)是一种数据格式,用于存储和传输结构化数据;而 JSONPath 是一种查询语言,用于从 JSON 数据中提取特定的值或子集。简单来说,JSON 是被查询的数据,JSONPath 是查询数据的工具。它们的关系类似于 SQL(查询语言)和数据库(数据存储)之间的关系。
JSONPath 和 XPath 有什么区别?
JSONPath 和 XPath 都是用于在结构化数据中定位节点的查询语言,但它们有以下主要区别:<strong>数据格式</strong>:JSONPath 用于 JSON 数据,XPath 用于 XML/HTML 数据;<strong>语法风格</strong>:JSONPath 使用点符号和方括号(如 $.store.book),XPath 使用斜杠和轴(如 /bookstore/book);<strong>索引起点</strong>:JSONPath 数组索引从 0 开始,XPath 从 1 开始;<strong>功能范围</strong>:XPath 支持更多的轴导航功能,JSONPath 则更简洁直观。
JSONPath 中的过滤器表达式如何使用?
JSONPath 过滤器使用 <code>[?(expression)]</code> 语法来筛选数组元素。例如:<strong><code>$.store.book[?(@.price<10)]</code></strong>:选择价格小于 10 的书;<strong><code>$.store.book[?(@.category=="fiction")]</code></strong>:选择类别为小说的书;<strong><code>$.store.book[?(@.length>100)]</code></strong>:选择页数大于 100 的书。过滤器支持比较运算符(==、!=、<、>、<=、>=)和逻辑运算符(&&、||)。
为什么我的 JSONPath 表达式没有返回结果?
JSONPath 表达式无结果的常见原因包括:<strong>路径不正确</strong>:检查 JSONPath 路径是否与数据结构匹配,可以使用本工具的"示例"功能验证;<strong>索引错误</strong>:JSONPath 数组索引从 0 开始,而非 1;<strong>属性名拼写</strong>:确保属性名完全匹配,JSONPath 是大小写敏感的;<strong>根节点符号</strong>:JSONPath 表达式必须以 <code>$</code>(根节点)开头;<strong>特殊字符</strong>:属性名中包含特殊字符时需要使用引号包裹,如 <code>$.["special-key"]</code>。