跳到工具

MIYAIP TOOLS

JSONPath 在线测试:查询嵌套 JSON

粘贴 JSON 和 JSONPath 表达式,检查匹配值及其位置。在构建导出或调整 API 集成前,用结果确认应用将读取哪些记录和字段。

工作台

输入仅在当前浏览器内处理。

jsonpath-js 0.3.1 · RFC 9535 · JSON:500,000 字符 · 表达式:2,000 字符 · 2 秒时限 · 最多展示 500 条

结果

请粘贴输入,或载入虚构示例。

筛选示例商品目录

虚构示例的 items 数组包含三个商品。运行 $.items[?@.stock > 0].name 会返回位于 $['items'][0]['name'] 的 Desk Lamp。Travel Mug 的库存为 0,Notebook 的库存为 null,两者都不满足库存大于零的条件。

修改输入会清除旧结果。无效 JSON、无效表达式和有效查询但没有匹配值,会显示不同结果。空结果会导出为空数组,不会替换为示例数据。

筛选正库存
$.items[?@.stock > 0].name
JSONPath 筛选有库存的商品后返回 Desk Lamp 及其规范化路径。
正库存过滤条件从虚构 JSON 示例中选出了 Desk Lamp。

从实际响应结构出发

根符号 $ 表示完整的 JSON 文档。位于 items 内的数组和根层级的数组需要不同的路径。选择查询前,先检查实际响应结构:

目标 虚构示例的查询
全部商品名称 $.items[*].name
第一个商品 ID $.items[0].id
每个商品的价格金额 $.items[*].price.amount
库存大于零的商品 $.items[?@.stock > 0]
前两个商品 $.items[0:2]

每条匹配都包含规范化路径和对应值。两个相同的值可能来自不同记录,应结合路径判断是否选中了预期记录。

使用与应用一致的查询语法

工作台使用 jsonpath-js 0.3.1 和 RFC 9535 查询语法。成员访问、索引、通配符、切片、后代查询和受支持的筛选表达式均遵循该语法。其他 JSONPath 库的 JavaScript 脚本表达式或扩展不能直接混用。

输入最多 500,000 个字符、50,000 个 JSON 值和 64 层嵌套,表达式最多 2,000 个字符。查询在独立 Worker 中运行,限时 2 秒。结果展示和导出最多包含 500 条匹配;总数更大时请缩小查询范围。输入在浏览器内处理,不会由此工具上传。

把结果接入采集流程

JSONPath 从提供的 JSON 中选择已有数据。它不会请求目标网址、把整份文档自动展开为 CSV 列结构,也不会创建缺失字段。使用 MIYAIP Crawler API 时,应先按任务文档 获取实际任务结果,再检查该接口返回的结构。这里虚构的 items 结构只是示例,并非所有 Crawler API 响应的通用结构。

FAQ

常见问题

为什么同一查询在其他测试器可用,在这里却失败?

比较两个工具使用的引擎和筛选语法。某个库专用的 JavaScript 表达式不一定是 RFC 9535 查询。先从简单成员路径开始,确认输入结构后,再添加筛选条件。

可以区分 null 和缺失字段吗?

可以。选择已存在且值为 null 的字段,会返回一条值为 null 的匹配;选择不存在的字段,则不会返回该字段的匹配。两种情况都不等同于数值零。

可以在这里查询实时的 MIYAIP 结果吗?

请粘贴已经获取的 JSON 结果。先取得任务结果,再粘贴到这里检查字段。

MIYAIP

需要稳定、可扩展的代理网络?

创建账号管理代理产品,或先查看动态住宅代理的流量定价。