# JSONPath 交互式测试场

一个交互式 JSONPath REPL，可对任意 JSON 运行多步查询管道。每行写一个 JSONPath 表达式（例如先 $..book[?(@.price<10)]，再 $[0:5]），即可看到每一步的匹配数、路径和值——还附带一个可分享的 URL，编码了你的数据和管道。支持递归下降（$..）、通配符（[*]）、过滤器（[?(@.price<10)]）、切片（[0:5:2]）和负索引。

> 标准页面: https://elysiatools.com/zh/tools/jsonpath-repl-playground

- **分类:** Development

- **关键词:** jsonpath, json, REPL, 测试场, 管道, 查询, jmespath, json 路径, 调试, api, 数据探索, 过滤器, 切片, 递归下降

## 概述

一个用于 JSONPath 查询的读取-求值-打印循环，专为调试 API 响应和探索 JSON 数据集而设计：

1. **粘贴 JSON** 到数据输入框（默认提供经典的 "store/book" 示例）。
2. **编写管道** —— 每行一个 JSONPath 表达式。每行针对上一行的输出运行，因此可以先 `$..book[?(@.price<10)]` 再 `$[0:5]`。
3. **查看每一步** —— 每一行都会渲染一张卡片，显示表达式、匹配数和匹配节点（值、路径+值或单个原始值）。
4. **分享** —— 工具会生成一个 URL 安全的令牌，编码你的 JSON 和管道，同事可重现完全相同的查询。
5. **支持的语法** —— `$` 根、`.key` 与 `['key']` 访问、`*` 通配符、`..` 递归下降、`[index]` / `[-1]` 索引、`[start:end:step]` 切片、`[?(expr)]` 过滤器（支持 `== != > >= < <= =~` 和 `@.field`）。

完全离线运行，引擎内置于工具中。

## 输入项

- **JSON 数据** (textarea): { "store": { "book": \[ { "category": "reference", "author": "Nigel Rees", "title": "Sayings of the Century", "price": 8.95 }, { "category": "fiction", "author": "Evelyn Waugh", "title": "Sword of Honour", "price": 12.99 }, { "category": "fiction", "author": "Herman Melville", "title": "Moby Dick", "price": 8.99 }, { "category": "fiction", "author": "J. R. R. Tolkien", "title": "The Lord of the Rings", "price": 22.99 } \], "bicycle": { "color": "red", "price": 19.95 } } }
- **管道（每行一步）** (textarea): $..book\[?(@.price < 10)\] $\[*\].title
- **渲染模式** (select)
- **最大结果数** (number)
- **历史标题** (text): Optional label saved with this query so you can find it again.

## 适用场景

- 需要调试复杂的 API 响应数据并提取特定字段时。
- 需要对大型 JSON 数据集进行多级过滤、切片或递归搜索时。
- 需要与团队成员分享特定的 JSON 过滤规则和查询结果时。

## 工作原理

- 在“JSON 数据”输入框中粘贴您需要查询的 JSON 文本。
- 在“管道”输入框中逐行编写 JSONPath 表达式，每一行都会在上一步的输出结果上继续执行过滤。
- 选择渲染模式（如“仅值”、“路径 + 值”或“原始”），并设置最大结果数限制。
- 实时查看每一步的匹配数量和过滤后的数据节点，并可复制生成的共享 URL。

## 使用案例

- 提取嵌套 API 响应中的特定字段列表。
- 过滤符合特定数值或文本条件的 JSON 数组元素。
- 对大型 JSON 配置文件进行快速切片和结构探索。

## 常见问题

### 什么是多步管道查询？

管道查询允许您逐行编写 JSONPath 表达式，下一行的表达式会自动作用于上一行过滤出来的结果集，实现链式过滤。

### 这个工具支持哪些 JSONPath 语法？

支持根节点 $、子属性访问、.. 递归下降、[*] 通配符、[0:5:2] 切片、负索引以及 [?(expr)] 过滤器。

### 渲染模式中的“路径 + 值”有什么作用？

该模式不仅会输出匹配到的数据值，还会以表格形式展示该值在原始 JSON 中的完整 JSONPath 路径，方便定位。

### 我的 JSON 数据会被上传到服务器吗？

不会。该工具完全在浏览器本地离线运行，您的 JSON 数据和查询管道不会被发送到任何外部服务器。

### 如何与他人分享我的查询配置？

工具会自动生成一个包含您当前 JSON 数据和管道表达式的 URL，复制并分享该链接即可让其他人重现完全相同的查询。

## 相关工具

- [矩形树图生成器](https://elysiatools.com/zh/tools/treemap-generator): 把层级数据渲染成矩形树图，用面积大小表示占比
- [Data URI 生成器](https://elysiatools.com/zh/tools/data-uri-generator): 将文件转换为 Data URI（Base64 或百分号编码），用于直接在 HTML、CSS 或 Markdown 中内联图片、字体等资源
- [API 延迟预算规划器](https://elysiatools.com/zh/tools/api-latency-budget-planner): 规划并可视化 API 延迟预算。输入 P99 目标（如 ≤ 300ms）和各阶段分配（DNS、TCP、TLS、TTFB、Processing、Network），查看实时瀑布图、预算占用和超标告警。可选粘贴 OpenTelemetry 或 Datadog trace，反推基于真实测量的分配建议。
- [API 请求代码片段生成器](https://elysiatools.com/zh/tools/api-request-code-snippet-generator): 根据请求链接、方法、请求头、Query 参数和请求体生成 cURL 及常见开发语言的代码片段
- [API 响应契约校验器](https://elysiatools.com/zh/tools/api-response-contract-validator): 将真实 API 响应 JSON 与 OpenAPI 3.x 中声明的 response schema 对照校验
- [分布式追踪解码与瀑布图可视化](https://elysiatools.com/zh/tools/distributed-trace-decoder-waterfall-visualizer): 解析 Jaeger、Zipkin 或 OpenTelemetry 的 trace JSON，并以瀑布图展示 span 时序与异常节点
- [JSON 差异可视化](https://elysiatools.com/zh/tools/json-diff-visualizer): 比较两个 JSON 并生成带颜色、路径和统计信息的可视化差异报告
- [JSONPath 查询工具](https://elysiatools.com/zh/tools/jsonpath-query-tool): 用 JSONPath 表达式查询任意 JSON，预览命中结果、切换输出格式，并保存常用查询模板

## 示例

- [NDJSON 样本](https://elysiatools.com/zh/samples/ndjson-samples): 从简单到复杂的 NDJSON 文件样本，适合入库和流式处理测试
- [JWT 示例](https://elysiatools.com/zh/samples/jwt-samples): 从基础令牌结构到高级安全实现的全面JWT示例
- [Postman Collections - API 测试](https://elysiatools.com/zh/samples/postman-collections): 全面的 Postman collection 示例，包括 API 测试、自动化脚本、环境变量、mock 服务器和 REST API 的高级测试模式
- [Terraform Plan JSON 样本](https://elysiatools.com/zh/samples/terraform-plan-json-samples): 用于依赖可视化和变更审查的 Terraform plan JSON 文件样本，贴近 terraform show -json 输出结构

## 相关内容

- [JSON 交换与格式翻译工具](https://elysiatools.com/zh/hubs/json-convert): 在一个专题里比较 JSON 与 CSV、YAML、TOML、GraphQL、XML、Markdown、Excel、BSON、EDN 等结构化格式之间的转换工具。
- [JSON 检查、对比与转换工具](https://elysiatools.com/zh/hubs/json-utility): 把 JSON 格式化、差异对比、路径检查、Schema 校验、合并、转换和导出工具集中到一个专题中，适合 API 与数据处理流程。
- [JSON Schema、Mock 数据与 API 夹具生成工具](https://elysiatools.com/zh/hubs/json-generate): 围绕JSON Schema 生成、Mock 负载构建与 API 夹具准备整理的一组工具。
- [JSON 格式化、对比与规范化工具](https://elysiatools.com/zh/hubs/json-format): 在一个专题中比较 JSON 格式化、差异对比、日志审查、配置比较和数据规范化工具，适合需要让 JSON 更易读、更易审查的流程。
