§

粘贴你想转换为 CSV 的 JSON 数组。

分隔符
表头列
首行作为表头
嵌套对象
类型推断
§

Output

csv

在国内数据工程场景里,将 JSON 转换为 CSV 每天都在发生:国家统计局通过国家数据平台 data.stats.gov.cn 发布的统计公报与年鉴微数据多以 CSV 形式批量下载,再被管道转写成 JSON 灌入 Snowflake 或 MaxCompute;中国证监会与上交所、深交所的公告数据接口和披露文件以 CSV 形态导出后,常被风控团队改写为 JSON 喂入 Kafka 流;央行人民币汇率中间价、Shibor 时序数据同样以 CSV 形式发布。本工具在浏览器中完成转换,敏感财务、医疗或人口普查数据始终不离开本机。

什么是 JSON 转 CSV?

JSON(JavaScript Object Notation,RFC 8259)是用于结构化数据的树形文本格式;CSV(逗号分隔值,RFC 4180)则是扁平的表格化文本格式。将 JSON 转换为 CSV 会把这棵树展平成行和列,让一个始于 API 响应的数据集无需重新录入即可在电子表格中打开。

JSON 转 CSV 是如何工作的?

每次转换都在你的浏览器中本地运行。高层步骤如下:

  1. JSON.parse 验证输入并确认它是顶层记录数组。如果括号、逗号或带引号的键名不符,会发出清晰的错误提示。
  2. 写入器从你的记录中推导表头列 — 要么是所有键的并集,要么只取第一条记录的键,由切换开关决定。
  3. 嵌套对象被扁平化为点号键(user.iduser.city),或序列化为单个 JSON 单元格,由你选择。对象内部的数组在两种模式下都会被 JSON 字符串化。
  4. 每个单元格按 RFC 4180 转义:任何包含分隔符、双引号或换行符的值都会被引号包裹,内部引号被加倍。行以 \r\n 行尾连接。
  5. CSV 出现在只读输出框中,下载链接基于带有 MIME 类型 text/csv;charset=utf-8Blob 构建,便于一键保存。

为什么使用此工具将 JSON 转换为 CSV?

  • 隐私:每一次解析、扁平化与写入都在你的浏览器中完成。数据从不进入我们的服务器。
  • 正确性:写入器遵循 RFC 4180。像 Bob, Jr. 这样的值会得到 "Bob, Jr." — 一个带引号的单元格,而非两列 — 嵌入的换行符或引号在转换后保持完整。
  • 电子表格就绪:输出可以直接粘贴到 Excel 或 Google Sheets,表头列已从你的键中推导出来,数据无需手工整理即可使用。
  • 灵活性:可将嵌套对象扁平化为点号键或序列化为单个单元格,可为非逗号 CSV 方言选择任意分隔符,还可选择表头来自所有键还是仅第一条记录。

JSON 转 CSV 的常见应用场景有哪些?

在数据处理与工具链中,将 JSON 扁平化为 CSV 随处可见:

  • 数据导出:把 API 返回的响应转换为 CSV 文件,让财务、运营或产品团队无需编写代码就能在 Excel 或 Google Sheets 中打开。
  • 报表:将 JSON 查询结果放入电子表格,用于数据透视表、图表或快速列公式。直接在原始 JSON 上做这类工作会很痛苦。
  • 电子表格审查:将嵌套 JSON 配置(设置、特性开关、A/B 变体)扁平化为 CSV,让非技术评审者可逐单元格阅读和编辑。

JSON 转 CSV 示例是什么样的?

粘贴 [{"name":"Alice","age":30},{"name":"Bob, Jr.","age":25}],保留逗号分隔符,按下转换。你会得到三行:name,age 表头行、Alice,30 数据行以及 "Bob, Jr.",25 行。那个嵌入的逗号正是会让朴素 join 出错的地方 — 这里它触发了 RFC 4180 引号包裹,使单元格保持完整。

这个 JSON 转 CSV 工具是完全在我的浏览器中运行的吗?

是的。每次解析、扁平化与写入都作为 JavaScript 在你的浏览器标签页中本地运行。本工具完全不调用 fetchXMLHttpRequestnavigator.sendBeacon — 你的 JSON 负载从不进入我们的服务器、第三方转换器或任何分析管道。页面加载后也可以离线使用,因为它只是一个没有运行时 API 依赖的静态 HTML/CSS/JS 包。

本工具可处理的最大输入大小是多少?

工具会在内存中缓冲整个输入并在主线程同步执行,因此实际上限取决于设备性能。在现代笔记本上,约 10 MB 的 JSON 数组(大约 10 万条典型记录)可以在没有明显停顿的情况下扁平化为 CSV。超出这一规模 UI 可能会卡顿。基于 Web Worker 与分块写入器的流式转换已列入后续计划 — 目前请在粘贴前先拆分超大数据集。

写入器如何处理含有逗号、引号或换行符的值?

按 RFC 4180 处理。任何包含当前分隔符、双引号、CR 或 LF 的值都会被双引号包裹,内部引号被加倍。所以像 Bob, Jr. 这样的名字会变成单个单元格 "Bob, Jr." 而不是分成两列,多行描述也会保留在一个单元格中。这正是朴素的 join(',') 会出错的地方。

转换为 CSV 时嵌套 JSON 对象会发生什么?

嵌套对象的处理方式取决于 嵌套对象 开关。在 扁平化 模式(默认)下,键名会通过点号连接 — {"user":{"id":1,"city":"Paris"}} 会变成 user.iduser.city 两列。在 序列化 模式下,嵌套对象会作为单个 JSON 单元格值序列化,同时完整保留 RFC 4180 引号转义,以便往返时还原结构。对象内部的数组在两种模式下都会被 JSON 字符串化。

CSV 输出可以使用哪些分隔符?

四种:逗号(,,RFC 4180 默认)、分号(;,欧洲地区常见)、制表符(\t,TSV 方言)以及竖线(|)。选择你的下游工具期望的那一种。写入器会转义任何包含所选分隔符的单元格,因此选择不会损坏任何值。

这个 JSON 转 CSV 工具将你的数组扁平化,输出符合 RFC 4180 的结果,可直接粘贴到电子表格、报告或代码审查中 — 全程不上传任何字节。需要反向?CSV 转 JSON 工具可以解析另一个方向。