JSONPath 表达式工具使用教程

什么是 JSONPath?

JSONPath 是一种用于在 JSON 文档中定位和提取数据的查询语言,类似于 XML 的 XPath。它使用路径表达式来导航 JSON 结构,支持对象和数组的深层遍历,广泛应用于 API 数据处理、配置文件解析、数据提取和转换等场景。

JSONPath 最初由 Stefan Goessner 在 2009 年提出,目前已有多种语言的实现版本,包括 JavaScript、Python、Java、PHP 等。ToolYou 提供的在线 JSONPath 工具支持实时查询测试、语法高亮、常用表达式库等功能,帮助您快速调试和验证 JSONPath 表达式。

JSONPath 基础语法

📌 根节点与子节点

JSONPath 表达式以 $ 表示根节点,使用 .[] 访问子元素:

  • $:表示根节点

  • $.name:访问根节点的 name 属性

  • $[\"name\"]:等价写法,使用方括号表示法

📌 通配符与递归匹配

通配符 * 匹配所有子节点,递归下降 .. 可定位任意层级的节点:

  • $.store.*:匹配 store 下的所有子元素

  • $..price:递归查找所有名为 price 的节点

📌 数组索引与切片

使用方括号 [] 访问数组元素,索引从 0 开始:

  • $.books[0]:获取数组第一个元素

  • $.books[0:2]:数组切片,获取前两个元素

  • $.books[-1]:获取最后一个元素

📌 过滤器表达式

过滤器 [?()] 支持条件筛选,可基于属性值进行查询:

  • $.books[?(@.price<10)]:筛选价格小于 10 的书籍

  • $.books[?(@.author==\"作者名\")]:筛选指定作者的书籍

📌 多选择与合并

使用 [,] 可将多个表达式结果合并:

  • $.books[*].[title,author]:获取所有书籍的标题和作者

ToolYou JSONPath 工具核心功能

🔍 实时查询与结果展示

在左侧输入 JSON 数据,在右侧输入 JSONPath 表达式,工具会实时显示查询结果。每个结果项显示其类型、名称、值和对应路径,方便理解匹配过程。

📝 常用 JSONPath 表达式库

工具内置了常用 JSONPath 表达式,点击即可快速套用。同时提供语法参考面板,展示各运算符的含义和使用方法,帮助初学者快速上手。

📋 历史记录功能

工具自动保存查询历史记录,方便回溯之前的查询操作。每条记录包含表达式、结果数量和查询时间,点击即可快速复用。

📋 一键复制与格式化

支持一键复制查询表达式和结果数据,JSON 输入框支持格式化功能,让数据结构更加清晰易读。

🌙 深色 / 浅色主题适配

工具支持深色和浅色两种视觉主题,用户可根据当前系统设置或个人偏好自由切换,减轻长时间使用时的视觉疲劳。

如何使用 JSONPath 工具?

场景一:提取特定字段

  1. 访问页面:打开 /jsonpath 工具页面

  2. 输入 JSON:在左侧编辑区粘贴 JSON 数据

  3. 输入表达式:在 JSONPath 输入框中输入 $.name

  4. 查看结果:右侧显示匹配的字段值

场景二:遍历数组元素

  1. 输入表达式:使用 $.books[*].title 获取所有书籍标题

  2. 批量查询:工具返回所有匹配的结果列表

场景三:条件筛选

  1. 使用过滤器:输入 $.books[?(@.price<10)] 筛选低价书籍

  2. 查看结果:工具显示符合价格条件的书籍信息

场景四:递归查找

  1. 深层嵌套:使用 $..price 递归查找所有价格字段

  2. 适用场景:适用于未知层级深度的数据结构

JSONPath 常见应用场景

  • API 响应解析:从复杂 API 响应中提取特定字段数据

  • 配置文件读取:从 JSON 配置文件中获取指定配置项

  • 数据清洗转换:提取原始数据中的关键字段,进行格式转换

  • 日志分析:从结构化日志中提取关键信息

  • 自动化测试:验证 API 响应中特定字段的值是否符合预期

常见问题

Q: JSONPath 和 XPath 有什么区别?

A: JSONPath 专门用于 JSON 数据,语法更简洁;XPath 用于 XML,支持命名空间等复杂特性。两者核心思想相似,但适用场景不同。

Q: 为什么我的 JSONPath 表达式没有匹配到结果?

A: 请检查以下几点:表达式是否正确以 $ 开头;属性名是否正确;数组索引是否从 0 开始;过滤器语法是否规范。

Q: JSONPath 支持哪些数据类型?

A: JSONPath 可以处理 JSON 支持的所有数据类型,包括字符串、数字、布尔值、null、数组和对象。

💡 提示:ToolYou 还提供 JSON 格式化XPath 测试JSON ↔ XML 互转工具 等相关工具,欢迎访问!

返回知识中心