快速、私密的 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 对比 工具来查看转换前后数据的变化。