素材阁

JSONPath 速查

共 23 条 JSONPath 查询语法,涵盖基础选取、数组、过滤与函数、与 jq 对照、使用场景。 支持搜索与分类筛选,点击即可复制。

基础选取

$ 表示根节点。

命令说明
取根下的 store 字段
带引号写法(字段含特殊字符时用)
逐层点取
递归下降:任意层级下的 price
深层字段

数组

下标、通配与切片。

命令说明
第一个元素
最后一个元素(负索引)
所有元素
切片(前 2 个)
取所有元素的 title

过滤与函数

条件筛选与取值函数。

命令说明
过滤:价格小于 10 的书
存在 isbn 字段的元素
按字段值过滤后取字段
长度(部分实现支持)
聚合(依实现而定)

与 jq 对照

JSONPath 与 jq 的常见等价。

命令说明
jq:.store.book[].author
jq:..|.author?
jq:.book[0]
jq:.book[]|select(.price<10)

使用场景

常见调用方式。

命令说明
JS 使用 jsonpath-plus
Python jsonpath-ng
k8s 中按 JSONPath 取字段
在线验证表达式

使用说明

JSONPath 速查:基础选取、数组、过滤与函数、与 jq 对照、使用场景;支持搜索与分类筛选,点击即可复制。

  1. 按用途点分类:基础选取、数组、过滤与函数、与 jq 对照、使用场景。
  2. 点「命令」列复制到代码或命令行。
  3. 记住四个核心符号:$(根)、.(子节点)、..(递归)、*(通配)。
  4. 过滤用 ?(@.field 条件),如 ?(@.price<10)。

常见问题

JSONPath 和 jq 有什么区别?
JSONPath 是通用查询语法、跨语言实现;jq 是功能更强的命令行工具与语言,二者常可互译。
为什么不同库结果不一样?
JSONPath 有多套实现,通配、切片、函数支持不完全一致;上线前用你实际使用的库验证表达式。
需要联网吗?
不需要,本地可用。

延伸阅读

相关工具