比较精确查询和递归查询
书名示例沿图书数组逐条取字段,$..price 则会同时找到图书和自行车的价格。先查看路径是否属于目标记录,再决定要不要扩大查询范围。
JSON 工具
先试价格筛选示例,再查看每个匹配值及其路径。关闭自动查询后可手动执行。
JSON 仅在当前浏览器处理;只有主动保存的表达式会存入本地。
| 规范化路径 | 值 |
|---|
每个值预览最多显示 1,200 个字符;复制与下载包含当前视图的完整结果。
RFC 9535 · jsonpath-rfc9535 1.3.0 · 不执行 JavaScript 表达式
结果已过期,复制、下载与发送暂不可用。
接口返回的数据层级一多,同名字段就很难分清来源。JSONPath 测试不仅要告诉你找到什么,还要告诉你它位于哪一条记录。
这里的 JSONPath 在线验证采用单一且明确的规范实现。先比较精确路径与递归路径,再把确认过的 JSONPath 表达式放进实际程序,可以更早发现查询范围过宽的问题。
JSONPath 测试为每个值同时显示规范化路径,例如 $['store']['book'][0]。即使两本书的价格完全相同,也能看出它们来自两个不同位置,不会被合并成一项。
发送前先选原始文档或匹配值数组。筛选出的对象可以继续转为 CSV 行;字符串或数字匹配可送往格式化工具。查询结束不会自动跳页,也不会自动传递数据。
书名示例沿图书数组逐条取字段,$..price 则会同时找到图书和自行车的价格。先查看路径是否属于目标记录,再决定要不要扩大查询范围。
默认在编辑停止 350 毫秒后运行。关闭自动查询后使用运行按钮或 Ctrl/Cmd+Enter。输入或表达式一变,旧结果立即过期,复制、下载和发送会等待新结果完成。
值视图始终导出匹配值数组,只有一项也保留外层数组。路径视图导出路径字符串数组。保存按钮只保存表达式,最多 20 条;载入收藏不会替换当前 JSON。
用 $.store.book[?@.price < 10] 筛选低价图书,通过 &&、|| 组合条件。支持标准 length、count、match、search、value 函数。引擎会解析条件,不把输入当作 JavaScript 执行。
JSONPath 查询支持属性名、通配符、递归下降、负索引、切片和多个选择器。相同选择器重复出现可能产生重复匹配,工具保留这些结果,不自动去重或排序。
没有任何匹配时导出 [];匹配到一个值为 null 的节点时导出 [null]。两者都可以是成功查询。语法错误会单独显示,并阻止导出,不能被误认为空列表。
删除收藏先显示将删除的 1 条表达式,再确认应用,并可撤销一次。结果每次显示 50 项,每个值预览最多 1,200 字符;复制和下载始终包含当前视图的完整有效结果。
JSONPath 测试采用 jsonpath-rfc9535 1.3.0 和 RFC 9535 语法。标准过滤器和函数可用,但早期方言中的脚本表达式、厂商扩展可能需要改写,不能用其他网站是否接受来判断这里的规范范围。
先检查根节点、字段拼写、大小写和数组所在层级。没有匹配会得到 [],它不是语法错误。可逐段缩短表达式,或使用根节点示例确认输入的实际结构,再加回筛选条件。
不支持。本页只接收严格 JSON,注释、JSON5、尾逗号和重复对象键都会报错。请在原始数据中修正问题;查询不会偷偷删除注释或用后一个同名键覆盖前一个。
本页没有文件上传入口,粘贴输入上限为 500,000 字符,另有深度、节点数、匹配数和输出量限制。复杂表达式还受 2 秒运行预算约束;超过上限应减少输入或缩小查询范围。
XPath 面向 XML 文档,JSONPath 面向 JSON 的对象、数组和值,两者语法不能直接互换。这里用 $ 表示 JSON 根节点,用属性与索引选择数据,不接受 XPath 的斜杠路径语法。
发现查询结果或语法处理不正确?