# JSONata 查询转换工作室

预览 JSONata 风格查询与转换，支持多数据对比，并导出 JSON、CSV、YAML 或 Markdown。

> 标准页面: https://elysiatools.com/zh/tools/jsonata-query-transform-studio

- **分类:** Data Processing

- **关键词:** jsonata, json, 查询, 转换, 模板

## 概述

把 JSON 对象或数组粘贴到“JSON 输入”，然后在“JSONata 表达式”里填写表达式。

各字段怎么填：
- JSON 输入：主要的 JSON 载荷，用来查询或转换
- JSONata 表达式：标准 JSONata 表达式，或像 groupBy(orders, "status") 这样的 studio helper 写法
- 对比 JSON 输入：可选的第二份 JSON，会用同一条表达式执行，方便并排比较结果
- 输出格式：把结果渲染成 JSON、CSV、YAML 或 Markdown
- 保存表达式：把当前表达式保存到本地历史
- 模板名称：可选，保存后会显示在表达式历史中

支持的表达式风格：
- 标准 JSONata，例如 $sum(orders.total) 或 orders[status="paid"]
- 不带 $ 前缀的 studio helper：
  - groupBy(collection, "field.path")
  - mapField(collection, "field.path")
  - flatten(collection)
  - distinct(collection)
  - count(collection)
  - sum(collection)
  - avg(collection)
  - keys(object)

示例：
- JSON 输入：{"orders":[{"id":1,"status":"paid","total":120},{"id":2,"status":"pending","total":40}]}
- 表达式：groupBy(orders, "status")
- 表达式：sum(orders.total)
- 表达式：orders[status="paid"]

说明：
- 工具底层使用真实 jsonata 运行时，同时会把上面的 helper 名称预处理成可调用函数。
- “对比 JSON 输入”不是必填，但很适合用来比对两份 API 响应或测试数据。

## 输入项

- **JSON 输入** (textarea): {"orders":\[{"id":1,"status":"paid","total":120}\]}
- **JSONata 表达式** (textarea): groupBy(orders, "status")
- **对比 JSON 输入** (textarea): {"orders":\[{"id":2,"status":"pending","total":55}\]}
- **输出格式** (select)
- **保存表达式** (checkbox)
- **模板名称** (text): Paid order totals

## 适用场景

- 需要从层级复杂的 API 响应 JSON 中快速提取特定字段或统计数据时。
- 在开发或测试阶段，需要对比两份不同的 JSON 数据在同一转换规则下的输出差异时。
- 需要将嵌套的 JSON 数组扁平化并转换为 CSV 或 Markdown 表格以便于汇报或记录时。

## 工作原理

- 在“JSON 输入”框中粘贴需要处理的原始 JSON 对象或数组。
- 在“JSONata 表达式”框中输入标准 JSONata 语法或内置的辅助函数（如 groupBy(orders, "status")）。
- （可选）在“对比 JSON 输入”中填入第二份数据以进行并排结果比对，并选择所需的输出格式（JSON、CSV 等）。
- 实时查看转换结果，勾选“保存表达式”并命名模板，以便日后重复使用该查询逻辑。

## 使用案例

- 前端开发者解析后端返回的复杂嵌套 JSON，提取关键字段并转换为扁平化的列表结构。
- 测试工程师比对新旧两个版本 API 接口返回的 JSON 数据，验证核心字段的聚合计算结果是否一致。
- 数据分析师将包含大量订单信息的 JSON 载荷按状态分组统计，并直接导出为 CSV 文件用于 Excel 分析。

## 常见问题

### 支持哪些 JSONata 表达式语法？

支持所有标准的 JSONata 语法（如 $sum(orders.total)），同时内置了免去 $ 前缀的便捷函数，如 groupBy、flatten、distinct、count 等。

### “对比 JSON 输入”有什么作用？

它允许您输入第二份 JSON 数据（例如不同环境的 API 响应），工具会用同一条表达式同时处理这两份数据，方便您直观比对输出结果。

### 转换后的数据可以导出为哪些格式？

目前支持将查询和转换后的结果渲染并导出为 JSON、CSV、YAML 以及 Markdown 格式。

### 如何保存常用的查询表达式？

勾选“保存表达式”选项，并在“模板名称”中输入自定义名称，该表达式就会保存在本地历史记录中，方便下次直接调用。

### 数据处理是在本地还是服务器端进行？

所有 JSON 数据的解析和 JSONata 表达式的计算均在您的浏览器本地运行，不会将您的数据上传到服务器，保证数据安全。

## 相关工具

- [Markdown 表格生成器](https://elysiatools.com/zh/tools/markdown-table-generator): 从 CSV、JSON 或数组数据生成格式化 Markdown 表格，支持对齐、表头样式、列宽控制和合并提示
- [BOM字符移除器](https://elysiatools.com/zh/tools/data-bom-remover): 从文本和文件内容中移除BOM（字节顺序标记）字符。非常适合清理有编码问题的文本文件、修复CSV导入和为处理准备数据。 功能特点： - 检测并移除UTF-8 BOM (EF BB BF) - 检测并移除UTF-16 BOM (FE FF 或 FF FE) - 检测并移除UTF-32 BOM (00 00 FE FF 或 FF FE 00 00) - 支持多种输入格式 - 可视化BOM字符显示 - 详细检测报告 - 支持批量文本处理 常见用途： - 修复CSV文件导入错误 - 清理文本文件编码问题 - 为JSON解析准备数据 - 修复XML解析问题 - 解决API数据编码冲突 - 标准化文本数据格式
- [Markdown 表格到 CSV、JSON 与类型推断 Schema](https://elysiatools.com/zh/tools/markdown-table-to-csv-json-schema): 将 Markdown 管道表格转换为 CSV、JSON 行或推断类型的 JSON Schema，并报告对齐和空值诊断
- [混乱文本结构化数据工作台](https://elysiatools.com/zh/tools/messy-text-to-structured-data-workbench): 从粘贴文本、混合分隔符、键值行或 HTML 中推断表格，并导出 CSV、JSON 和 Markdown。
- [JSON转CSV转换器](https://elysiatools.com/zh/tools/json-to-csv): 将JSON数据转换为CSV格式，支持自定义格式化选项
- [结构化日志解析器](https://elysiatools.com/zh/tools/structured-log-analyzer): 自动识别常见日志格式，提取核心字段并推断字段类型，支持导出为 JSON、CSV 或 SQL。
- [文本转Excel转换器](https://elysiatools.com/zh/tools/text-to-excel): 将各种文本格式转换为Excel，支持自定义解析和格式化选项
- [PDF 表格提取到 CSV/JSON](https://elysiatools.com/zh/tools/pdf-table-extractor-to-csv-json): 用 OpenDataLoader 从 PDF 中抽取表格，并导出为结构化 JSON、扁平 CSV 或 HTML 表格

## 示例

- [CSV示例](https://elysiatools.com/zh/samples/csv-samples): 各种数据类型、大小和复杂度级别的CSV示例文件
- [Python 示例](https://elysiatools.com/zh/samples/python): Python代码示例和Hello World演示
- [OpenAPI/Swagger 示例](https://elysiatools.com/zh/samples/openapi-swagger): 使用 OpenAPI 3.0 和 Swagger 规范的 RESTful 服务综合 API 文档示例
- [分布式追踪示例](https://elysiatools.com/zh/samples/distributed-tracing-samples): 使用 Jaeger、OpenTelemetry 和其他现代可观测性工具的综合分布式追踪示例，适用于微服务架构

## 相关内容

- [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 夹具准备整理的一组工具。
- [可观测性、日志分析与 Trace 排障工具](https://elysiatools.com/zh/hubs/observability-debugging): 在一个专题里完成日志解析、Trace 检查、API 载荷漂移对比，以及把原始观测数据整理成时间线、时序图和结构化排障证据。
- [JSON 交换与格式翻译工具](https://elysiatools.com/zh/hubs/json-convert): 在一个专题里比较 JSON 与 CSV、YAML、TOML、GraphQL、XML、Markdown、Excel、BSON、EDN 等结构化格式之间的转换工具。
