JSONPath 在线测试

本地处理
app.jsonpath.view

也可通过 #data={"name":"Ada"}#url=... 灌入数据,读完即从地址栏清除。

JSONPath 用类似 $.store.book[*].title 的路径从文档里抽出节点。只读查询,不会改原文,适合从大响应里拿列表或某个嵌套字段。写接口测试断言、从日志抠某一层数组时,比手写多层取值更短。

路径提取

支持 $ 根节点、 .. 递归、切片和过滤。通配 [*] 可一次取出数组里每个元素的同名字段。

页面提供常用模板,可先选模板再改成自己的路径。

调试表达式

改一行路径立刻看结果,比写临时脚本快。表达式错误或没有匹配时会明确提示。

从树形页复制路径过来验证,可以减少拼写错误。

下一步

抽出的数组可以再拿去转 CSV 或生成类型。确认路径无误后再写进测试代码或 jq 脚本。

本页不修改原文,适合只读排查。

示例

数据
{
  "store": {
    "book": [
      { "title": "Sayings of the Century", "price": 8.95 },
      { "title": "Slightly Bad", "price": 12.99 }
    ]
  }
}
表达式与结果
$.store.book[*].title

["Sayings of the Century", "Slightly Bad"]
和 CSS 选择器像吗?

思路类似:用路径描述「要哪一部分」,而不是循环手写取值。

过滤怎么写?

常见写法是 $..book[?(@.price<10)] 这类条件。语法以本页引擎为准。

没有结果是为什么?

路径和真实结构不一致最常见。用树形页核对键名、数组下标,以及到底是对象还是数组。

会改原始 JSON 吗?

不会。只输出匹配到的值列表。

推荐工作流

  1. 粘贴完整响应,从 $ 开始写浅路径再逐步加深。
  2. 用模板填入常见表达式,点「执行」看匹配条数。
  3. 确认结果后,把表达式复制到测试或脚本。
  4. 匹配到的对象数组需要表格时,再转到 CSV / Excel 页。

不同库的 JSONPath 细节略有差异。以本页跑通的表达式为准,再对照你们语言里的实现。