ToolConvoyToolConvoyv2.6
DATA

JSON 转 CSV — 将 JSON 数组转换为 CSV 表格

将 JSON 对象数组转换为 CSV 格式。支持嵌套扁平化、分号分隔符、BOM 前缀 —— 全部在浏览器中完成,无需上传。

● 本地运行 · 零拷贝流水线页面加载以来工具发出的网络请求:0 次

JSON 是 Web API 的原生格式,而 CSV 是那些「从未被设计来彼此对话」的系统之间数据交换的最大公约数。每条分析管道、每个电子表格、每个数据库导入向导都期望 CSV,而每个现代 Web 服务默认返回 JSON。在两者之间相互转换几乎是每次数据迁移的第一步,但这种转换的细微之处常常被低估 —— 因为这两种格式对结构做出了根本不同的假设。JSON 是树形的:嵌套、递归、深度任意。CSV 是表形的:扁平、整齐、每一行都有同样的列。本转换器通过选择一种扁平化策略 —— 用点号记法实现深度访问,或仅取顶层以便快速导出 —— 并显式呈现那些大多数工具默默搞错的编码细节,从而在两种格式之间搭起桥梁。

实践中最重要的三个编码细节:UTF-8 字节顺序标记(文件开头的三个不可见字节,告诉 Excel 这是 UTF-8)、英语世界(逗号)和欧洲世界(分号,因为在那里逗号是小数点)之间分隔符的不一致,以及防止含有分隔符字符的值在字段中间被劈开的引号协议。这三项在输出选项中都可配置,默认值的选择目标是让导出文件在「Windows 上以逗号作小数分隔符的 Excel」这一最常见的目标中正确打开。

转换之后,最常见的下一步是把 CSV 导入数据库或可视化工具。如果目标是 SQL,配套的 CSV-to-INSERT 转换器可以直接生成 SQL 语句。如果目标是 TypeScript 或 Python 应用,JSON-to-TypeScript 或 JSON-to-Python 转换器就是正确的下一步 —— 它们从同一个 JSON schema 生成类型化的数据模型,让 API 响应和 CSV 导出共享单一的事实来源。

广告

使用方法

  1. 粘贴或拖入 JSON

    拖入一个 JSON 对象数组,或粘贴一段 JSON 字符串。解析器期望顶层为数组 —— 单独的对象也可接受,但会输出为单行 CSV。

  2. 选择分隔符与编码

    在逗号(RFC 4180 标准)、分号(欧洲版 Excel 默认)或制表符之间切换。启用 UTF-8 BOM 可让 Excel 在打开时自动检测编码。

  3. 下载 CSV

    结果是可下载的 .csv 文件。除了浏览器内存之外没有大小限制 —— 包含数千个对象的数组在不到一秒内即可处理完成。

常见问题

如何处理嵌套的 JSON 对象?

默认情况下,嵌套对象会用点号记法的列名扁平化:`user.profile.name` 会变成名为 `user.profile.name` 的 CSV 列。当不需要嵌套数据时,切换「扁平 vs 嵌套」开关可折叠为仅保留顶层键。

Excel 能正确打开生成的 CSV 吗?

可以,前提是启用了 UTF-8 BOM。Windows 版 Excel 在检测到 BOM 时会自动识别 UTF-8,从而正确渲染带音调的字符、emoji 和非拉丁文字。没有 BOM 时,Excel 可能会回退到系统的 ANSI 代码页,把非 ASCII 文本弄得一团糟。

不同的数据类型会怎样处理?

所有值都会被输出为字符串。JSON 的 `true` 会变成 CSV 字符串 'true',`null` 会变成空单元格,数字默认不带引号。在选项中切换「为所有值加引号」可实现严格符合 RFC 4180 的输出 —— 每个字段都带引号。

能处理大于 50 MB 的 JSON 文件吗?

解析在内存中进行,仅受浏览器标签页可用 RAM 的限制。实际中大到几百 MB 的文件转换都没有问题,但文件非常大时界面在解析期间可能会卡顿。转换前先用 jq 之类的命令行工具把文件切分一下。

限制说明

  • 不做类型强制转换所有输出值都是字符串。如果你的 JSON 中有 ISO 8601 日期,它们会原样出现在 CSV 中 —— 工具不会把它们重新格式化为 Excel 日期序列号。需要公式就绪的日期,请在 Excel 或 Google Sheets 中做后处理。
  • 异构数组扁平化结果不可预测如果数组元素拥有不同的键集合,CSV 表头就是所有键的并集。缺少某个键的行对应位置留空。这在 CSV 语义上是正确的,但对于无 schema 的 JSON 可能会产生稀疏输出。
  • 不做透视或聚合本转换器只是一个纯粹的数据整形工具。它不聚合、不透视、也不计算求和。需要分析或聚合时,把 CSV 输出作为电子表格的输入即可。

平台说明

macOS
macOS 上的 Numbers.app 在存在 BOM 时会以正确编码打开 CSV 文件。如果你打算在 Numbers 中编辑 CSV 后再导出,请确保导出格式为「CSV UTF-8」,以避免编码漂移。
Windows
BOM 选项的主要动机就是 Windows 版 Excel。如果接收方在非英文语言区域下的 Windows 机器上使用 Excel,请务必启用 BOM,否则 ASCII-127 之外的字符会被破坏。
Linux
LibreOffice Calc 打开 UTF-8 CSV 时不需要 BOM。需要从剪贴板粘贴到 Google Sheets 以及偏好制表符输入的在线电子表格时,请使用制表符分隔符。
Web
完全在浏览器中运行;没有网络往返。对典型的 API 导出,转换只需几毫秒。
广告

相关工具

广告