JSONPath 是什么?
JSONPath 是一种按路径访问 JSON 节点的写法。$ 代表整份数据,点号用于访问对象字段,方括号用于访问数组下标。它特别适合在接口响应、日志和配置对象中定位一个明确字段。
这不是完整的 JSONPath 标准实现,而是面向日常调试的轻量查询器。页面会明确显示匹配节点的实际路径,方便你复制结果或回到原始数据继续排查。
常用 JSONPath 写法与结果
| 表达式 | 会查询什么 | 示例结果 |
|---|---|---|
$ | 完整 JSON 根节点 | 整份接口响应 |
$.user.name | user 对象中的 name | "张三" |
$.orders[0].id | 订单数组第一项的编号 | "ORD-001" |
$['user'].name | 方括号形式的对象字段 | "张三" |
$.orders.* | 订单数组下的全部直接元素 | 每一条订单对象 |
当前不支持哪些写法?
筛选表达式、递归下降、切片、脚本函数和多条件查询暂不支持。例如 $..id、$.orders[?(@.paid)] 不会按完整 JSONPath 语义执行。
如果你需要提取某个已知字段,优先使用简单路径。简单表达式更容易验证,也更适合接口调试时快速定位问题。
常见问题
- 为什么查不到字段?
- 先确认字段大小写、数组下标和层级。建议先格式化 JSON,查看实际结构后再写路径。
- 对象字段含特殊字符时怎么写?
- 可使用方括号字段写法,例如
$['user-name']。当前字段名中不要包含未转义的引号或空白。 - 数组顺序变化会影响结果吗?
- 会。
[0]永远表示当前数组第一项。若接口数组顺序不稳定,不应依赖固定下标定位业务数据。