← 工具

JSONPath 在线测试

粘贴 JSON,写一个 JSONPath 表达式,看看它选中了什么。

私密:你的文件不会离开你的设备。

结果

JSONPath 速查表
写法作用
$整个文档(根节点)
.name ['name']按名称取字段(名称含空格或符号时要加引号)
[0] [-1]按位置取列表中的某一项,可从开头或末尾数
[0:3] [::2] [::-1]切片:start:end:step(不含 end)
* [*]所有字段或项
..name ..*在所有层级中搜索
[0,2] ['a','b']同时选取多个
[?@.price < 10]过滤器:选出测试结果为 true 的项(@ 表示当前项)
== != < <= > >=比较数字、文本、true、false 和 null
&& || ! ( )与、或、非,以及分组
[?@.isbn]拥有该字段的项
length(@.tags)文本、列表或对象的长度
count(@.*)查询找到的节点数
match(@.id, 'A-[0-9]+')整个文本匹配某个正则表达式
search(@.name, 'smith')文本中某处包含匹配
value(@..price)查询找到的单个值

本工具遵循 JSONPath 标准(RFC 9535),并通过了官方测试套件。旧工具中的 (@.length-1) 和 =~ 这类脚本表达式不属于标准:错误提示会告诉你标准写法。

边输入边更新结果。超大数字不会丢失精度。一切都在你的设备上完成,粘贴的内容不会上传。

使用方法

  1. 选择你的文件。
  2. 按需调整设置。
  3. 下载结果,或用 BroAllDone 发送到另一台设备。

常见问题

什么是 JSONPath?

一种从 JSON 中提取值的简短写法,例如 $.store.book[0].title。$ 表示整个文档,点号或 [ ] 用来进入字段或列表,.. 会在所有层级中搜索。很多 API、数据库以及 kubectl、Postman 等工具都在用它。

如何在 JSONPath 中过滤数据?

用 ? 加一个测试条件,其中 @ 表示当前项:$..book[?@.price < 10] 会返回价格低于 10 的书。用 && 和 || 组合多个条件,用 ! 表示取反。

这个工具使用哪种 JSONPath 语法?

官方标准 RFC 9535,并且通过了该标准的合规测试套件。支持过滤器、切片、length()、count()、match()、search() 和 value() 函数,以及规范化路径。

为什么在别的工具里能用的表达式这里不行?

旧工具有一些额外语法,比如 (@.length-1)、=~ 或 in,它们都不属于标准。错误提示会告诉你标准写法,例如用 [-1] 取最后一项,用 match() 匹配正则表达式。

如何获取每个匹配项的路径?

在“显示”中选择“路径”或“路径和值”。路径可以是规范化格式($['store']['book'][0]),也可以是点号格式($.store.book[0])。

我的 JSON 会被上传吗?

不会。一切都在你的浏览器中运行,因此可以放心测试 API 响应、配置文件和私密数据。超大数字也不会丢失精度。

更多免费工具