WebTool

JSONPath 语法完全指南:从入门到实战

WebTool 团队 · 发布于 2026-09-01 · JSON / JSONPath / 接口调试

JSONPath 是一种用于从 JSON 文档中提取数据的查询语言,地位相当于 XML 的 XPath。 本文用 10 分钟讲清它的全部常用语法,并给出接口调试中的实战例子。读完可以直接在本站 JSONPath 工具中练习。

基本符号

语法 含义 示例
$ 根节点(所有表达式必须以此开头) $
.key 取子键 $.store.name
['key'] 取子键(键名含特殊字符时用) $['user-name']
[0] 数组下标(从 0 开始) $.users[0]
[*] 数组/对象全部成员 $.users[*].name
..key 递归下降:任意层级找该键 $..price

过滤与切片

过滤表达式 [?(...)] 中的 @ 代表当前元素:

$.store.book[?(@.price < 10)]        // 价格小于 10 的书
$.users[?(@.age >= 18)].name        // 成年用户的名字

数组切片与 Python 一致:

$.items[0:3]    // 前 3 个(不含下标 3)
$.items[-1]     // 最后一个

实战:调试分页接口

假设接口返回:

{
  "code": 0,
  "data": {
    "list": [
      { "id": 101, "title": "第一篇文章", "author": { "name": "张三" } },
      { "id": 102, "title": "第二篇文章", "author": { "name": "李四" } }
    ],
    "total": 57
  }
}

常用提取路径:

需求 表达式
所有文章标题 $.data.list[*].title
所有作者名 $..name
第一篇的作者 $.data.list[0].author.name
总数 $.data.total

常见错误

  1. 忘记以 $ 开头 —— data.list 不合法,应为 $.data.list
  2. 键名含点或横线 —— 用 ['key.name'] 而不是 .key.name
  3. 过滤里用了 $ —— 过滤表达式内用 @ 指代当前元素,不是 $

最后更新:2026-09-01