JSONPath 测试器

实时测试 JSONPath 表达式,查看匹配结果并高亮显示。支持过滤器、通配符和递归下降。免费,基于浏览器。

100% 浏览器端运行 数据不离开你的设备 免费 · 无需注册
示例
结果

使用方法

  1. JSON 输入面板中粘贴或输入 JSON(默认预加载了一个书店示例数据集)。
  2. JSONPath 表达式输入框中填写表达式,或点击示例标签。
  3. 匹配结果会立即显示在结果面板中,并带有语法高亮。
  4. 点击复制将匹配输出复制到剪贴板。

JSONPath 语法参考

  • $ — 根元素
  • .key — 子属性(点表示法)
  • [‘key’] — 子属性(括号表示法)
  • [n] — 数组索引 n 处的元素
  • [*] — 所有数组元素或对象属性
  • ..key — 递归下降——在树中任意位置查找 key
  • [?(@.prop op value)] — 过滤表达式

常见使用场景

JSONPath 广泛用于从 API 响应中提取数据、配置 Kubernetes 选择器、在测试套件(Jest、Postman)中编写断言, 以及在 AWS Step Functions 和 EventBridge 中定义路由规则。 熟练掌握 JSONPath 查询可以大幅提高处理嵌套 JSON 结构的效率。

FAQ

什么是 JSONPath?

JSONPath 是 JSON 的查询语言,类似于 XML 的 XPath。它使用路径表达式从 JSON 文档中选取节点,广泛应用于 API、测试框架以及 Kubernetes、AWS Step Functions、Postman 等工具中。

JSONPath 表达式中的 $ 是什么意思?

$ 指 JSON 文档的根元素。所有有效的 JSONPath 表达式必须以 $ 开头。单独使用时,$ 选取整个文档;之后可以链式添加选择器,例如 $.store.book[0].title。

如何选取数组中的所有元素?

在数组键名后使用通配符选择器 [*]。例如,$.store.book[*] 返回数组中所有 book 对象。还可以进一步提取每个元素的字段:$.store.book[*].author 返回所有 author 值。

过滤表达式如何使用?

过滤表达式语法为 [?(@.property operator value)],@ 符号代表当前元素。例如,$.store.book[?(@.price < 10)] 返回所有 price 小于 10 的书。支持的运算符:==、!=、<、>、<=、>=。

递归下降(..)是什么?

.. 运算符递归搜索当前节点的所有后代。例如,$..author 在整个 JSON 树中查找所有 author 字段,无论嵌套深度如何。