JSONPath 查询

用 JSONPath 表达式从 JSON 里查询、筛选、提取数据,支持 $ 根节点、.key、[0]、[*]、.. 递归,以及过滤表达式 [?(@.age > 18)](可写 == != > >= < <= 与 && || !、括号)。

常用表达式:
拖拽文件到此处
也可以点击下方按钮选择本地文件
支持 .json / .txt / .csv,最大 10 MB,仅在浏览器本地解析
所有数据均在浏览器本地处理,不会上传服务器。

按路径表达式提取与筛选 JSON 数据

JSONPath 查询是什么

JSONPath 是一种用于定位和提取 JSON 数据的路径表达式。它可以从对象、嵌套对象和数组中快速找到需要的字段,也可以通过过滤条件筛选符合要求的数组元素。本工具适合查询 API 响应、配置文件、日志数据以及其他 JSON 文档。

JSONPath 基本语法

$ 表示 JSON 根节点;$.users 表示访问根节点下的 users 属性;$.users[0] 表示取得数组第一个元素;$.users[*] 表示取得数组中的全部元素;$.users[*].name 表示取得 users 数组中每个元素的 name;$..price 表示递归查找任意层级下名为 price 的属性。

数组下标支持负数,例如 [-1] 可以定位数组最后一个元素。使用通配符 [*] 时,可以一次查询数组中的全部元素。

如何使用 JSONPath 过滤数组

需要按照字段值筛选数组元素时,可以使用 [?()] 过滤表达式。例如 $.users[?(@.age > 18)] 会筛选 age 大于 18 的用户。@ 表示当前数组元素,条件中的属性可以通过 @.field 访问。

过滤条件支持 ==、!=、>、>=、<、<= 比较运算符,也支持使用 &&、|| 和 ! 组合多个条件,并可以使用括号调整条件优先级。例如 $.users[?(@.age >= 18 && @.active == true)] 可以筛选年龄至少为 18 且 active 为 true 的元素。

JSONPath 查询结果怎么看

查询完成后,结果区会显示匹配到的数据及其路径。路径使用 JSONPath 表示,例如 $.users[0].name,可以帮助你确认具体命中了哪个字段或数组元素。

下方同时提供标准 JSON 数组结果,可以直接复制或下载为 JSON 文件。统计信息会显示命中数量;没有匹配结果时会明确提示无结果。为了避免页面过长,结果卡片最多展示前 200 条,但完整匹配结果仍会保留在 JSON 输出中。

常用 JSONPath 表达式

页面提供常用表达式按钮,可以直接查询示例数据。例如 $ 查询整个 JSON,$.users 查询 users,$.users[*].name 查询所有用户名称,$..price 查询任意层级的 price 字段,$.users[?(@.age > 18)] 则用于按年龄筛选数组。

这些表达式可以作为模板修改字段名、数组下标和过滤条件,用于学习 JSONPath 语法或快速定位实际 JSON 数据。

如何查询本地 JSON 文件

切换到文件上传页签后,可以将 .json 文件拖入页面,或者点击选择文件。文件会直接在浏览器中读取,单文件上限为 10 MB;文件载入后会使用当前 JSONPath 表达式自动执行查询。

JSONPath 查询无结果怎么办

如果表达式没有报错但结果为空,首先检查 JSON 的实际层级和数据类型。例如 users 是数组时通常需要使用 $.users[*] 或 $.users[0],不能把数组直接当成对象使用 $.users.name。需要查找嵌套层级中的同名字段时,可以尝试 $..name。

如果过滤表达式没有结果,再检查字段名称、字段类型和比较条件是否一致。例如数字 18 与字符串 \"18\" 的比较结果可能不同。表达式本身出现语法错误时,检查 $、点号、方括号和 ?() 是否完整闭合。

本工具支持的 JSONPath 范围

当前支持根节点 $、属性访问、数组下标、负数下标、通配符 [*]、递归下降 .. 和 [?()] 过滤表达式。过滤条件支持 ==、!=、>、>=、<、<=、&&、||、! 以及括号。工具不声称支持完整 JSONPath 标准中的全部扩展语法。

JSONPath 怎么写?

JSONPath 使用路径表达式定位 JSON 数据:$ 表示根节点,.key 访问属性,[0] 访问数组元素,[*] 匹配全部元素,$..key 可以递归查找任意层级的同名属性。

需要筛选数组时,可以使用 [?(@.age > 18)] 这样的过滤表达式,按字段值选择符合条件的元素,并使用 &&、|| 和 ! 组合多个条件。

  • 支持 $、.key、数组下标 [0]、负数下标、通配符 [*] 与递归下降 $..key
  • 支持 [?()] 过滤表达式,可按字段值筛选 JSON 数组元素
  • 过滤条件支持 ==、!=、>、>=、<、<= 以及 &&、||、! 组合
  • 结果显示匹配路径和值,并提供标准 JSON 数组输出,可复制或下载
  • 上传 JSON 文件时单文件上限 10 MB,载入后自动按当前表达式查询
  • 全部在浏览器本地完成,输入内容不上传服务器
需要比较两份 JSON 的字段变化,可以使用 JSON Diff;需要把多个 JSON 对象合并,可以使用 JSON 合并;需要将 JSON 数据整理成表格,可以使用 JSON → CSV;需要检查 JSON 结构是否符合规则,可以使用 JSON Schema 校验。
评论 0
暂无评论,快来发表第一条评论吧
avatar
评论内容不能为空
0/255