跳到正文
SPCX Tools

JSONPath 测试工具

直接在浏览器中即时测试和执行 JSONPath 表达式,快速匹配您的 JSON 数据。

本地运行——文件不会离开你的设备

正在加载工具…

如何使用JSONPath 测试工具

  1. 1将 JSON 数据粘贴或输入到左侧面板中,或点击“Sample”加载示例数据。
  2. 2在页面顶部的输入框中输入您的 JSONPath 表达式。
  3. 3点击输入框下方的任意快捷示例按钮,查看常见的查询模式。
  4. 4在右侧面板中查看匹配结果、总匹配数以及匹配元素的精确路径。

快速、私密的 JSONPath 测试工具

处理庞大或深度嵌套的 JSON 数据时,精准提取所需信息往往非常繁琐。这款 JSONPath 测试工具提供了一个实时环境,方便您编写、测试和调试查询语句。输入表达式时,工具会立即解析您的 JSON 数据,并同时显示提取出的值及其所在的确切路径。

作为一款纯客户端的 JSONPath 解析工具,所有数据处理均在您的设备本地完成。您的 JSON 数据绝不会被发送到服务器。这意味着您可以放心粘贴生产环境的 API 响应数据、数据库导出文件或敏感配置文件,完全无需担心数据泄露或隐私安全问题。

开发者核心功能

  • 实时解析: 修改 JSON 数据或查询语句时,结果会立即更新。无需点击提交按钮或等待服务器响应。
  • 安全解析: 工具采用安全的解析引擎(eval: 'safe')处理查询,在全面支持复杂过滤表达式的同时,有效防止恶意代码执行。
  • 路径提取: 除了显示匹配的值,工具还会生成每个匹配项的绝对路径。如果您后续需要通过代码更新这些特定节点,此功能将非常实用。
  • 内置示例: 如果您对语法不太熟悉,可以加载内置的书店示例数据集,点击体验预设的表达式,直观了解不同运算符的作用。

如何编写 JSONPath 查询

JSONPath 使用特定语法在 JSON 对象和数组中进行导航。要测试 JSONPath 表达式逻辑,首先需要了解以下基本运算符:

  • $ 表示根对象或数组。所有绝对 JSONPath 表达式均以此符号开头。
  • @ 表示当前正在处理的节点。主要用于过滤表达式中。
  • . 或 [] 是子节点运算符,用于选择属性。例如,$.store.book 和 $['store']['book'] 的作用完全相同。
  • .. 是递归下降运算符。它能在整个 JSON 树中搜索特定键,无论嵌套层级有多深(例如,$..price 会查找所有的价格)。
  • * 是通配符,用于匹配对象或数组中的所有元素。例如,$.store.* 会选中 store 对象下的所有直接内容。
  • [?()] 用于应用过滤表达式。您可以在其中使用标准的逻辑运算符。例如,$..book[?(@.author == 'Nigel Rees')] 将查找由该特定作者编写的所有书籍。
  • [start:end:step] 允许对数组进行切片操作,用法类似 Python。例如,$.store.book[-1:] 会选中数组中的最后一本书。

常见应用场景

API 开发与调试。 现代 REST 和 GraphQL API 通常会返回大量的 JSON 数据。无需编写临时代码来解析和检查响应结果,您可以将数据粘贴到这款 JSONPath 在线工具中,快速验证数据结构是否正确,以及您的查询是否提取了正确的字段。

自动化测试。 在编写集成测试或端到端测试(使用 Postman、RestAssured 或 Playwright 等工具)时,您经常需要断言 JSON 响应中是否存在特定值。使用 JSONPath 测试工具可以帮助您在将查询字符串硬编码到测试套件之前,先将其调试完善。

数据提取与转换。 如果您正在迁移数据或构建 ETL(提取、转换、加载)流水线,通常需要分离出特定的数组或对象。您可以使用此工具找出提取目标数据所需的确切路径。如果您的源数据是 XML 格式,可以先使用 XML 转 JSON 转换器;如果在检查前需要格式化压缩过的数据,JSON 格式化 工具可以帮到您。您还可以使用 JSON 对比 工具来查看转换前后数据的变化。

常见问题

什么是 JSONPath?
JSONPath 是一种用于 JSON 数据的查询语言,类似于 XML 中的 XPath。它允许您使用简洁的字符串表达式从复杂的 JSON 结构中选择并提取特定的节点、数组或值。
我的 JSON 数据安全吗?
安全。本工具完全在您的浏览器中本地运行。您的 JSON 数据和查询绝不会上传到任何服务器,用来测试敏感的 API 响应、配置文件或专有数据绝对安全。
如何根据特定条件过滤数据?
您可以使用语法为 [?(@.property == 'value')] 的过滤表达式。例如,$.store.book[?(@.price < 10)] 会返回 store 数组中价格低于 10 的所有书籍。
我可以查看匹配元素的准确位置吗?
可以。在主结果输出区域下方,有一个可展开的“Paths”(路径)面板。展开后,将显示结果集中每个匹配元素的绝对 JSONPath 路径。
为什么会提示“Invalid JSON”错误?
JSON 的格式要求非常严格。请确保所有的键和字符串值都使用双引号(而不是单引号)括起来,并且对象或数组的最后一项后面没有多余的逗号。
此工具使用哪种 JSONPath 规范?
此工具使用流行的 jsonpath-plus 库,完全支持原始 JSONPath 规范,并增加了一些安全的扩展功能以应对更复杂的查询。它无需使用 JavaScript 的 eval() 函数即可安全地计算表达式。