JSONPath 在线测试工具 - 实时查询与语法高亮

JSONPath 工具

JSON 数据
JSONPath 表达式
查询结果

输入 JSON 和 JSONPath 表达式开始查询

历史记录

暂无记录
📘 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. 1
    输入 JSON 数据

    在左侧编辑框中输入或粘贴您的 JSON 数据内容,可以点击"格式化"按钮自动格式化 JSON 结构。

  2. 2
    输入 JSONPath 表达式

    在右侧的 JSONPath 输入框中输入您的查询表达式,或使用"常用 JSONPath"库中的预设模板快速填充。

  3. 3
    查看查询结果

    工具会实时显示匹配结果,包括数据类型(对象、字符串、数字等)、值和路径。点击结果项可单独复制。

  4. 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>。

收起使用说明
更多推荐
查看更多
HTML 预览开发工具
YAML ↔ Properties开发工具
Cron 表达式开发工具
XPath 测试开发工具
JSON 转 Java开发工具
JSON ↔ CSV 互转开发工具
JSON ↔ XML 互转开发工具
XML 格式化开发工具