分类

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" }

关键信息

分类
Data Processing
输入类型
textarea, select, checkbox, text
输出类型
html
样本覆盖
4
支持 API
Yes

概览

JSONata 查询转换工作室是一款专为开发者和数据分析师设计的在线工具。它允许用户通过编写 JSONata 表达式,快速对复杂的 JSON 数据进行查询、过滤和结构转换。不仅支持多组数据源的实时对比预览,还能将处理后的结果一键导出为 JSON、CSV、YAML 或 Markdown 格式,极大提升数据处理与接口调试的效率。

适用场景

  • 需要从复杂的 API 响应或深层嵌套的 JSON 日志中提取特定字段时。
  • 需要将结构化的 JSON 数据扁平化,并转换为 CSV 报表供非技术人员使用时。
  • 在开发过程中需要验证和调试 JSONata 表达式,或对比两组不同 JSON 载荷的转换结果时。

工作原理

  • 在“JSON 输入”框中粘贴需要处理的原始 JSON 数据。
  • 在“JSONata 表达式”框中编写查询或转换逻辑(例如 groupBy(orders, "status"))。
  • (可选)填入“对比 JSON 输入”以测试同一表达式在不同数据源上的表现,并选择所需的输出格式(JSON、CSV、YAML 或 Markdown)。
  • 查看实时生成的转换结果。如果需要重复使用该逻辑,可勾选“保存表达式”并为其命名。

使用场景

后端开发者调试 API 接口,快速提取并验证返回的 JSON 核心字段是否符合预期。
数据分析师将复杂的 JSON 格式埋点日志转换为结构化的 CSV 表格,以便导入 Excel 或 BI 工具进行分析。
前端工程师编写数据转换模板,将后端返回的原始数据映射为前端 UI 组件所需的特定数据结构。

用户案例

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

电商数据分析师
背景原因
需要统计系统中不同状态(如已支付、待处理)的订单分布情况。
解决问题
原始数据是包含所有订单的扁平 JSON 数组,难以直观查看各状态的订单列表和汇总信息。
如何使用
将订单 JSON 粘贴到输入框,输入分组表达式,并将输出格式保持为 JSON。
示例配置
groupBy(orders, "status")
效果
成功将扁平的订单数组转换为以状态(如 "paid", "pending")为键的分组对象,便于后续统计和查阅。

2. 提取用户信息并生成 CSV 报表

运营专员
背景原因
运营团队需要一份包含用户姓名和邮箱的名单用于邮件营销,但开发部门提供的是包含大量冗余信息的复杂 JSON 文件。
解决问题
无法直接将 JSON 数据导入到邮件营销工具中,必须将其转换为 CSV 格式。
如何使用
粘贴用户 JSON 数据,编写表达式提取姓名和邮箱字段,然后在“输出格式”中选择 CSV。
示例配置
users[].{"Name": name, "Email": email}
效果
复杂的 JSON 数据被精准过滤,并直接转换为标准的 CSV 文本,可直接复制或下载使用。

用 Samples 测试

json, csv, yaml

相关专题

常见问题

支持哪些输出格式?

工具支持将转换后的结果输出为 JSON、CSV、YAML 或 Markdown 格式,方便不同场景下的使用和数据流转。

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

它允许你输入第二组 JSON 数据,从而在同一个界面下直观地验证同一条 JSONata 表达式对不同数据载荷的处理结果是否有差异。

我可以保存常用的查询表达式吗?

可以。勾选“保存表达式”并填写“模板名称”,即可将当前编写的 JSONata 表达式保存下来,作为模板供后续快速调用。

这个工具能处理多层嵌套的 JSON 吗?

完全可以。JSONata 语言本身就是为处理复杂、深层嵌套的 JSON 结构而设计的,你可以轻松进行数据提取、映射和重组。

导出的 CSV 数据是如何生成的?

当你选择 CSV 作为输出格式时,工具会将 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]