JSON路径测试器
粘贴一个 JSON 文档并输入类似$..book[?(@.price<10)]的JSONPath表达式。测试工具会将其与文档内容进行比对,并显示所有匹配项及其精确路径。此功能特别适用于验证您即将插入脚本或API规范中的查询(Postman、k6和JMeter均支持JSONPath)。
如何测试 JSONPath 表达式
-
1
粘贴 JSON 文档
所有有效的 JSON 类型,对象、数组及深度嵌套结构。
-
2
输入表达式
以 `$` 作为根节点;使用 `.` 作为子节点,`..` 用于递归下降,`[*]` 作为通配符。
-
3
实时查看匹配项
每条匹配项均显示其数值及完整的 JSONPath 路径,并在原始文档中高亮显示。
-
4
复制结果
将匹配项复制为 JSON 数组,或逐个复制每个路径以供下游代码使用。
JSONPath语法参考
| 表达式 | 含义 |
|---|---|
$ |
根元素 |
$.store |
$ 的子项,名称为 store |
$["store"] |
同样,方括号形式 |
$..author |
所有深度下的 author 属性 |
$.store.book[*] |
店内所有书籍 |
$.store.book[0] |
第一本书 |
$.store.book[-1:] |
最后一本书 |
$.store.book[0:2] |
前两本书(切片) |
$.store.book[?(@.isbn)] |
具有 isbn 属性的书籍 |
$.store.book[?(@.price < 10)] |
价格低于 10 的书籍 |
$.store.book[?(@.category == "fiction")] |
小说类书籍 |
$..* |
每个值,无处不在 |
过滤表达式
过滤表达式使用 @ 指代当前节点。该测试工具支持以下常用运算符:==、!=、<、>、<=、>=、&&、|| 以及正则表达式 =~。
$.items[?(@.qty >= 10 && @.price < 50)]
JSONPath 方言
目前存在多种JSONPath实现方案,其间存在一些细微的兼容性差异。本测试工具遵循Goessner原始规范及RFC 9535的修订版本,这些规范与以下标准兼容:
- JaywayJsonPath(Java)
- jsonpath-plus(JavaScript)
- jsonpath-rw(Python)
- jq 基本路径表达式
不兼容的功能(如使用任意JS的脚本表达式)会在错误面板中显示标记。
当 JSONPath 比完整解析器更胜一筹时
- 测试断言:Postman 的
pm.expect(jsonData).to.have.jsonPath(...)会接收一个路径参数。 - 配置提取:无需依赖库即可从庞大的API响应中提取单个值。
- 负载测试脚本:k6、JMeter 和 Gatling 均支持使用 JSONPath 进行验证。
- Kubernetes/AWS CLI:
--query和--jsonpath标志可让您自定义命令行输出内容。
常见错误
- 在数组上使用
.。$.users.0.name不正确,请使用$.users[0].name。 - 忘记使用
..进行深度匹配。 如$.name这样的路径仅与顶级路径name匹配;请统一使用$..name。 - 混淆 JSONPath 与 jq 的用法。 jq 是一个包含控制流和转换功能的扩展集;而 JSONPath 仅用于数据提取。
- 正则表达式锚定:
=~ /foo/用于匹配子字符串;如需精确匹配,请使用/^foo$/。
常见问题
JSONPath是一种纯粹的数据提取语言,支持选择、过滤和切片操作;而jq则是一套完整的查询/转换语言,具备控制流、变量和函数功能。对于简单的数据提取任务,JSONPath更具可移植性;而对于复杂的数据转换场景,则推荐使用jq。
Goessner原始规范结合RFC 9535的改进版本,兼容JaywayJsonPath(Java)及jsonpath-plus(Node)。不支持方言特定扩展(含任意代码的脚本表达式)。
是的。$..book[?(@.title =~ /^Harry.*/)] 可匹配所有标题以“Harry”开头的书籍;如需完全匹配,请使用 ^ 和 $。
是的。JSON 和 JSONPath 求值器均驻留在您的浏览器中,您的文档及查询请求始终不会离开当前标签页。
相关工具
ASCII 表参考
完整 ASCII 表,覆盖 0 到 127;列出每个代码的十进制、十六进制、八进制、二进制值和 HTML 数字字符引用写法,包括 NUL、LF、DEL。
HTML 字符参考
可搜索的 HTML 实体列表,含命名代码与数值代码,并支持一键复制特殊字符和符号。
键盘快捷键参考
搜索 macOS、Windows 和 Linux 上 VS Code、Chrome 以及使用 GNU Readline 的 Bash 的文档默认快捷键。
邮箱验证器
验证邮箱地址:RFC 5322 语法检查、实时 MX 记录查询,并显示本地部分、域名和长度详情。不会发送任何邮件。
编辑器配置生成器
根据你的缩进样式与大小、行尾、字符集和空格规则生成 .editorconfig 文件,让不同集成开发环境(IDE)和编辑器的格式保持一致。
证书解码器
粘贴一张 X.509 PEM 证书,并查看解码后的字段:主体、颁发者、序列号、签名算法、有效期及主体备用名称(SAN)。
此工具还提供其他语言版本
- Công cụ kiểm thử JSONPath [VI]
- أداة اختبار مسارات JSON (JSONPath) [AR]
- Testeur JSONPath [FR]
- JSON Path Tester [ID]
- JSONPath-Tester [DE]
- JSONPath 테스터 [KO]
- JSONPath-testare [SV]
- JSON Path Tester [NL]
- เครื่องมือทดสอบ JSON Path [TH]
- Tester JSONPath [PL]
- JSONPath テスター [JA]
- Testador de JSONPath [PT]
- Probador de JSONPath [ES]
- JSONPath Tester [EN]
- Tester JSONPath [IT]
- JSONPath Tester [RU]
- JSONPath Test Aracı [TR]