JSONPath 测试器

输入 JSONPath 表达式,实时查看 JSON 中匹配到的值和路径。

JSON 输入
匹配值
输入 JSON 和 JSONPath 表达式即可测试。

你的 JSON 和 JSONPath 会在浏览器本地测试,不会上传到 BroBroGo。

常见问题

支持哪些 JSONPath 写法?

可以用 $.store.book[*].title、$..price、[?@.price < 10] 过滤和数组切片等常见 JSONPath 写法。

为什么每条结果都有路径?

路径会标出匹配值在原 JSON 里的位置,复制值时也不会丢掉来源。

为什么查询可能超时?

非常宽泛的递归查询或过大的样本会运行太久。页面会在短时间后停止这次查询,让你缩小表达式或换小样本。

JSONPath 语法与匹配机制

JSONPath 是一种在 JSON 文档中定位和提取特定数据的查询语言。通过特定的语法结构,用户可以从复杂的嵌套 JSON 对象中精准筛选出所需的信息。

在编写 JSONPath 表达式时,通常会用到以下几种核心模式:

  • 根节点与子节点:以 $ 表示 JSON 数据的根节点,通过点号 . 或括号 `` 访问子属性。
  • 递归下降:使用 .. 操作符(例如 $..price)可以穿透多层嵌套结构,在整个 JSON 树中查找所有名为 price 的属性。
  • 过滤器表达式:利用 [?()] 语法进行条件筛选。例如,表达式 [?@.price < 10] 可以过滤出价格小于 10 的所有对象,其中 @ 代表当前正在处理的节点。
  • 数组切片与通配符:使用 * 匹配所有元素,或使用切片语法选择数组中的特定子集。

输入限制与数据校验

为了保证浏览器运行的稳定性,本工具对输入的文本长度设定了严格的上限:

  • JSON 输入:支持的最大字符数为 500,000 字符。如果粘贴的数据超过此限制,系统将显示错误提示:这段 JSON 太大,暂时无法测试。请换一段更小的样本。
  • JSONPath 表达式:支持的最大字符数为 4,000 字符。若表达式超出此长度,系统将提示:这个 JSONPath 表达式太长,暂时无法测试。

在处理查询之前,工具会对输入内容的合法性进行校验。如果输入的 JSON 格式不正确,界面会显示:这段 JSON 不合法。;如果编写的 JSONPath 表达式存在语法错误,则会提示:这个 JSONPath 表达式不合法。

匹配结果输出与展示规则

当 JSONPath 表达式成功运行后,工具会实时展示匹配到的值以及它们在原始 JSON 中的具体路径。这有助于用户准确掌握提取数据的来源位置。

结果展示遵循以下规则与状态提示:

  • 匹配计数:界面会通过 匹配:{count} 标明找到的匹配项总数。
  • 最大展示限制:工具最多展示 200 条匹配结果。如果匹配项超过 200 个,系统会显示 匹配:200+,并附带提示:仅显示前 {max} 条。
  • 无匹配项:如果表达式未能在 JSON 中找到任何对应数据,界面将显示:没有匹配结果。
  • 详情查看:每个匹配项下方都设有 详情 栏,用于展示该匹配值的具体路径和结构。
  • 清空状态:当用户点击清空按钮后,界面会提示:已清空。

复杂查询的超时与异常处理

在面对结构极其复杂的 JSON 数据或编写了过于宽泛的递归查询时,计算过程可能会消耗大量系统资源。为了防止浏览器卡死,工具设置了严格的运行时间限制。

一旦查询执行时间超过安全阈值,评估程序将自动终止,并弹出提示:这个 JSONPath 运行太久了。请缩窄表达式,或换一段更小的样本。。此外,如果遇到其他无法解析的执行错误,工具则会提示:无法执行这个 JSONPath。

为了提高查询效率,建议在编写表达式时尽量避免在超大 JSON 样本上直接使用全局递归操作符 ..,而是先通过具体的路径定位到子树,再进行局部筛选。

浏览器本地处理与隐私说明

你的 JSON 和 JSONPath 会在浏览器本地测试,不会上传到 BroBroGo。所有的解析、过滤和匹配计算均在用户本地的浏览器线程中完成,数据不会离开你的设备。

常见问题

支持哪些 JSONPath 写法?

可以用 $.store.book[*].title、$..price、[?@.price < 10] 过滤和数组切片等常见 JSONPath 写法。

为什么每条结果都有路径?

路径会标出匹配值在原 JSON 里的位置,复制值时也不会丢掉来源。

为什么查询可能超时?

非常宽泛的递归查询或过大的样本会运行太久。页面会在短时间后停止这次查询,让你缩小表达式或换小样本。