technine.io

工具

JSON 转 CSV 工具

在浏览器中将扁平 JSON 对象、对象数组、行数组或对象格式的 JSON Lines 转成 CSV 或 TSV,并明确设置列和嵌套值的处理方式。

文件和粘贴的数据只在当前浏览器内处理,不会发送到转换服务器、加入网址或写入浏览器存储。

源数据

将文件拖到这里

单个文件上限为 10 MB,粘贴的 UTF-8 文本上限为 1 MB。结果最多包含 100,000 条记录、250 列和 1,000,000 个单元格;JSON 嵌套结构最多 256 层。预览显示 100 行 × 30 列。

输入和数据形状设置
CSV/TSV 输出

此工具只接受能够明确对应表格的 JSON。例如 [{"id":1,"name":"Ada"},{"id":2,"email":"a@example.com"}] 会按键首次出现的顺序生成 id、name、email 三列;某个对象没有 name 或 email 时,对应位置留空。嵌套对象和数组默认不接受,除非你明确选择把精简 JSON 文本放进一个单元格。

使用方法

  1. 选择不超过 10,000,000 bytes 的 JSON 文件,或粘贴最多 1,000,000 UTF-8 bytes。选择 JSON 或 JSON Lines 解析,再处理语法、混合行或不安全整数错误。
  2. 确认输入属于支持的形状:一个扁平对象、扁平对象数组、行数组,或每个非空行一个对象的 JSON Lines。顶层基本值以及对象与数组混合的行会被拒绝。
  3. 选择 null 和嵌套值的写法、行数组是否生成 column_N 表头,以及列数不一致时是否补空值。工具不会截断任何额外单元格。
  4. 选择逗号、Tab、分号或竖线分隔符、UTF-8 BOM,以及 CRLF 或 LF。下载前检查类似公式的值,决定保留原文还是加单引号,再下载经过重新解析验证的 CSV 或 TSV。

适用场景

用表格查看 API 响应
将扁平对象数组转成电子表格列,后面的对象才出现的键也会保留。
为数据导入生成表格文件
按目标系统要求设置分隔符、换行和 BOM,再输出 CSV 或 TSV。
转换对象格式的 JSON Lines
读取每个非空行的对象,按键首次出现的顺序合并成一张表格。
将嵌套值保留为文本
目标系统支持单元格中的 JSON 文本时,可以明确序列化嵌套对象或数组,避免工具自行展开。

支持范围与限制

  • 输入和输出限制与另外两个 CSV 工具相同:文件 10,000,000 bytes、粘贴文本 1,000,000 UTF-8 bytes、100,000 条记录、250 列、1,000,000 个单元格、单个字段 1,000,000 个解码字符,以及 50,000,000 输出 bytes。预览最多显示 100 行和 30 列。
  • 支持一个扁平对象、扁平对象数组、行数组,或每个非空行一个对象的 JSON Lines。顶层基本值、混合行形状和格式错误的 JSON Lines 不会输出。
  • 嵌套对象和数组没有唯一正确的 CSV 形状,因此默认拒绝。可以选择将精简 JSON 放进一个单元格,但工具不会自动生成多层字段。
  • 对象缺少的键会输出空字段。null 默认也是空字段,也可以选择输出文本 null。CSV 转回 JSON 时,可能无法区分缺失值、null 和空字符串。
  • 对象列按照键第一次出现的顺序排列。标准 JSON 解析无法可靠保留重复键,数字的十进制写法也可能被规范化。
  • 超出 JavaScript 安全整数范围且没有引号的整数会被拒绝,避免解析时改变数字。大型标识符应在源 JSON 中保存为字符串。
  • 类似公式的字符串默认保留,在电子表格中打开时可能被识别为公式。加单引号是可选操作,会改变数据,也无法保证所有电子表格软件都安全。
  • 转换在当前浏览器中完成,文件、粘贴的 JSON、文件名、键和输出都不会发送到转换服务器。下载的 CSV 仍可能包含隐私信息或类似指令的内容,分享或在其他软件中打开前请先检查。

常见问题

哪些 JSON 结构可以转成 CSV?

工具支持一个扁平对象、扁平对象数组、行数组,或每个非空行一个对象的 JSON Lines。顶层字符串、数字、布尔值、null,以及对象和数组混合的行都不接受。

CSV 列按什么顺序生成?

列是所有对象键的集合,并按每个键首次出现的顺序排列。后面的对象才新增的键仍会成为新列,前面的对象在该位置留空。

嵌套对象和数组会怎样处理?

工具默认拒绝,因为嵌套数据没有唯一正确的展开方式。可以明确选择将嵌套值保存为一个单元格中的精简 JSON;工具不会自动生成点号字段。

null、缺少字段和空字符串能分别保留吗?

默认不能。缺少字段和空字符串会输出空单元格,null 默认也为空;可以改为输出文本 null。CSV 本身无法保留空白单元格原有的全部 JSON 类型差异。

行数组可以生成表头吗?

可以。启用后使用 column_N 名称。工具默认要求每行列数相同;选择补成矩形后,短行会补空值,较长的行不会被截断。

为什么部分大整数会被拒绝?

JavaScript 无法准确表示所有超出 ±9,007,199,254,740,991 的整数。没有引号且超出该范围的整数会在转换前被拒绝;如果每一位数字都要保留,源 JSON 应将标识符写成字符串。

下载的 CSV 可以直接用电子表格打开吗?

工具会提示以公式字符开头的字段,默认仍保留原文。可选的单引号前缀会改变字段值,在部分软件中可以降低风险,但任何设置都不是通用的电子表格安全保证。

把 CSV 转回去,能得到完全相同的 JSON 吗?

不能。CSV 不保留 JSON 值类型、嵌套结构和对象语义,也可能无法区分缺失值、null 与空字符串。CSV 应视为表格导出,而不是 JSON 的无损备份。

咨询WhatsApp