第 9 课

JSONPath 查询

用路径表达式从嵌套文档中提取字段。

JSON 文档很大时,你往往只需要 某一个字段,而不想逐层手动定位。JSONPath 是一种查询语言(类似 XML 的 XPath),用于在 JSON 树中选择节点。

示例文档

{
  "store": {
    "books": [
      { "title": "JSON 101", "price": 12.5 },
      { "title": "API Design", "price": 28 }
    ]
  }
}

常见表达式

表达式含义
$文档根
$.store.booksbooks 数组
$.store.books[0].title第一本书标题
$.store.books[*].price所有价格
$..price根下任意层的 price

可将 $ 理解为起点,. 为子属性,[n] 为下标,[*] 为每个元素,.. 为递归向下。

使用场景

  • 在测试或脚本中从嵌套 API 响应取 user id
  • 在结构不一的日志里筛选 level == "error"
  • 在集成文档中标注字段路径

与手写代码对比

JavaScript 中可写 data.store.books[0].title。JSONPath 更适合:

  • API 版本间层级不一致
  • 多文件配置中用同一路径查询
  • 工具提供路径输入框做临时检查

局限

各实现对过滤器、切片等扩展略有差异。生产环境应固定库版本,并为关键路径写测试。JSONPath 只读结构——不能修复无效 JSON;请先解析与校验。

想动手练习时,可使用 DevCove 相关工具——可选,不属于本课正文。

打开相关工具

返回课程概览