tigtools

JSON 转 CSV 转换器

粘贴 JSON 数组,即可生成可在 Excel、Google Sheets 或 LibreOffice 中打开的 CSV 表格。转换在浏览器中进行。

在浏览器中运行 无需注册

分隔符

使用方法

  1. 粘贴 JSON 对象数组、打开 .json 文件,或点击“试用示例”。
  2. 选择电子表格需要的分隔符,以及对象内的数组写入方式。
  3. 检查 CSV 预览。每个对象占一行;嵌套字段会转换为 address.city 这样的列。
  4. 复制 CSV,或将其下载为 .csv 文件。

工作原理

顶层数组中的每个元素都会转换为一行。列包含所有键的并集,并按键首次出现的顺序排列,因此字段不同的对象也能正确对齐;缺少字段或字段值为 null 时,对应单元格为空。如果根元素是单个对象,结果将只有一行。纯值数组(如 [1, 2, 3])会生成名为 value 的单列。

对象内的数组有三种写入方式:在一个单元格中写成 JSON 文本 (["a","b"])、合并到一个单元格中 (a; b),或展开为带编号的列 (tags.0, tags.1)。如果每行都有类似的短列表,请使用最后一种方式。

输出遵循 RFC 4180:字段中包含分隔符、双引号或换行符时,会用双引号括起来,字段内的双引号会重复两次。行与行之间使用 CRLF 换行。在许多欧洲地区的 Excel 设置中,小数分隔符是逗号,因此 Excel 预期使用分号而非逗号。Excel 打开 CSV 文件时,也可能会重新格式化长数字、前导零和类似日期的文本;如果需要保留精确值,请将文件作为文本导入。解析 JSON 时,超过 2^53 的数字会失去精度。

示例

从 API 导出用户数据

某个 API 返回 [{"id":1,"name":"Ada","address":{"city":"London"}}, …]。生成的 CSV 包含 id、name 和 address.city 列,可直接在电子表格中排序和筛选。

含逗号和引号的文本

像 Alan "AT" Turing 这样的姓名会转换为 "Alan ""AT"" Turing",而像 Wilmslow, Cheshire 这样的城市名称会用引号括起来,这样电子表格程序就能将每个值保留在各自的单元格中。

在德语或法语版 Excel 中打开

将分隔符设为分号,并启用 UTF-8 BOM。这样 Excel 就能正确拆分列,并正常显示 ä 和 é 等字符。

常见问题

深层嵌套的 JSON 会如何处理?

所有层级的嵌套对象都会扁平化为点分隔路径形式的列名,例如 order.customer.address.zip。数组的处理方式取决于你选择的选项:JSON 文本、合并值,或每个元素单独占一列。

为什么有些单元格是空的?

对象中没有该键,或键的值为 null 时,单元格为空。列由所有对象共同决定,因此即使某个键只存在于部分对象中,也会生成对应的列。

应该使用哪种分隔符?

逗号是标准分隔符。如果所在地区的小数使用逗号(欧洲大部分地区和拉丁美洲),请使用分号;如果数据本身包含许多逗号,或想直接粘贴到电子表格中,请使用制表符。

可以将 CSV 转回 JSON 吗?

可以使用本网站的 CSV 转 JSON 工具进行转换。不过,扁平化无法完全还原:点分隔路径形式的列名会作为普通键返回,例如 "address.city",而不会还原为嵌套对象。

隐私

转换在浏览器中进行。你的 JSON 和生成的 CSV 不会上传、存储或纳入分析统计。