JSONata 查询转换工作室

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

把 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 响应或测试数据。

示例结果

1 个示例

按状态对订单分组并导出结果

用一条表达式对比两份订单载荷里状态分布的差异。

groupBy result preview
查看输入参数
{ "jsonInput": "{\"orders\":[{\"id\":1,\"status\":\"paid\",\"total\":120},{\"id\":2,\"status\":\"pending\",\"total\":40}]}", "expression": "groupBy(orders, \"status\")", "outputFormat": "json" }

关键信息

分类
数据与表格
输入类型
textarea, select, checkbox, text
输出类型
html
样本覆盖
4
支持 API
Yes

概览

JSONata 查询转换工作室是一款专为开发者和数据分析师设计的在线工具,支持实时预览 JSONata 表达式的查询与转换结果。您可以输入复杂的 JSON 数据,利用标准 JSONata 语法或内置的便捷函数(如 groupBy、sum 等)提取所需字段,并支持双视窗对比两份 JSON 数据的执行差异,最后将结果一键导出为 JSON、CSV、YAML 或 Markdown 格式。

适用场景

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

工作原理

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

使用场景

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

用户案例

1. 按订单状态分组并导出 CSV

数据分析师
背景原因
收到一份包含数百条订单记录的 JSON 数据,需要按支付状态分类统计。
解决问题
手动筛选 JSON 数据耗时且容易出错,需要快速分组并转换为表格格式。
如何使用
将订单 JSON 粘贴到“JSON 输入”,在表达式中输入 `groupBy(orders, "status")`,并将输出格式选为 CSV。
效果
复杂的 JSON 数组被瞬间按状态分组,并转换为结构化的 CSV 数据,可直接导入 Excel。

2. 对比不同环境 API 的响应差异

测试工程师
背景原因
正在进行系统重构,需要确保测试环境和生产环境的 API 返回的订单总额计算逻辑一致。
解决问题
两份 JSON 响应体量庞大,肉眼难以直接对比深层嵌套的金额总和。
如何使用
将生产环境 JSON 填入“JSON 输入”,测试环境 JSON 填入“对比 JSON 输入”,输入表达式 `$sum(orders.total)`。
效果
左右两侧直观展示两份数据的总金额计算结果,快速验证了重构后的 API 逻辑是否正确。

用 Samples 测试

json, csv, yaml

相关专题

常见问题

支持哪些 JSONata 表达式语法?

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

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

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

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

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

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

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

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

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

API 文档

请求端点

POST /zh/api/tools/jsonata-query-transform-studio

请求参数

参数名 类型 必填 描述
jsonInput textarea -
expression textarea -
compareJsonInput textarea -
outputFormat select -
saveExpression checkbox -
templateName text -

响应格式

{
  "result": "
Processed HTML content
", "error": "Error message (optional)", "message": "Notification message (optional)", "metadata": { "key": "value" } }
HTML: HTML

AI MCP 文档

将此工具添加到您的 MCP 服务器配置中:

{
  "mcpServers": {
    "elysiatools-jsonata-query-transform-studio": {
      "name": "jsonata-query-transform-studio",
      "description": "预览 JSONata 风格查询与转换,支持多数据对比,并导出 JSON、CSV、YAML 或 Markdown。",
      "baseUrl": "https://elysiatools.com/mcp/sse?toolId=jsonata-query-transform-studio",
      "command": "",
      "args": [],
      "env": {},
      "isActive": true,
      "type": "sse"
    }
  }
}

你可以串联多个工具,比如:`https://elysiatools.com/mcp/sse?toolId=png-to-webp,jpg-to-webp,gif-to-webp`,最多20个。

如果遇见问题,请联系我们:[email protected]