跳到正文
EVOA Toolbox

CSV 转 JSON

在浏览器中将 CSV 或 TSV 转换为 JSON。自动检测分隔符,处理引号和 BOM,并预览前几行。

在浏览器中本地处理,你的文件不会被上传。

正在加载工具…

这个工具能做什么

拖入 .csv 文件或粘贴 CSV 文本,立即得到 JSON 数组。解析器遵循人们实际遇到的 CSV 惯例:带引号的字段、引号内的逗号和换行、用双引号表示转义、Windows 或 Unix 换行符,以及 Excel 带来的 UTF-8 字节顺序标记。分隔符(逗号、分号、制表符或竖线)会被自动检测,对于使用分号的欧洲式导出文件,你也可以自己指定。

选择你需要的结构:以表头行为键的对象数组(最适合 API 和应用),或数组的数组(最适合紧凑的数据和图表)。打开自动类型后,数字、true/false 和空单元格会被转换为真正的 JSON 值;带前导零的数字(如邮政编码)以及超出 JavaScript 安全表示范围的长 ID 会保留为文本,因此不会损坏任何数据。输出可选 2 个或 4 个空格缩进、制表符缩进或压缩格式。

预览表格会显示前 100 行。诸如字段过少或过多的行、未闭合的引号和重复的列名等问题,会连同行号一起列出,数据仍会被转换(较短的行会被补齐,多余的单元格会生成新列,重复的列名会加上 _2)。超过 1 MB 的文件会在后台 worker 中解析并显示进度条,因此大型导出文件不会让页面卡住。

使用方法

  1. 1拖入 CSV 文件,或把 CSV 文本粘贴到框中。
  2. 2将分隔符保持为“自动检测”,或选择逗号、分号、制表符或竖线。说明第一行是否为表头。
  3. 3选择 JSON 结构、自动类型和缩进。较小的输入会随着输入实时转换;大文件请点击“转换”。
  4. 4查看预览和报告的问题,然后复制或下载 JSON。

支持的格式

输入:UTF-8 编码的 .csv、.tsv 或 .txt 文件以及粘贴的文本。输出:JSON(.json),为对象数组或数组的数组。

隐私

此工具在你的浏览器中运行。你提供的数据在你的设备上处理,不会发送到我们的服务器。

限制

  • 整个文件会被读入内存,因此非常大的 CSV(数百 MB)在内存较小的设备上可能很慢或失败。大小限制会显示在拖放区域中。
  • 文件必须是 UTF-8(带 BOM 也可以)。Windows-1252 或 Shift-JIS 等其他编码可能会显示乱码;请先把文件另存为 UTF-8。
  • 自动类型只是启发式判断:像 1e3 这样的值会变成数字,“true”会变成布尔值,这可能并不是文本列的本意。关闭该选项可把所有值保持为字符串。
  • 日期不会被转换,保持为文本。
  • 预览只显示前 100 行,对于特别大的结果,页面上的 JSON 文本会被截短(复制和下载包含全部内容)。

常见问题

我的 CSV 会被上传到服务器吗?

不会。解析和转换都在你的浏览器中运行,大文件则使用你设备上的后台 worker。

分隔符检测是怎么工作的?

工具会在前几行上尝试逗号、分号、制表符和竖线,并选出得到的列数最一致的那个。如果文件比较特殊,你可以手动覆盖。

字段数不对的行会怎样处理?

它们会连同行号一起被报告。较短的行会用空值补齐,多出的单元格会保留在名为 column_N 的新列中,因此不会悄悄丢弃任何数据。

为什么我的邮政编码仍然是字符串?

开启自动类型后,带前导零的值会保留为字符串,这样“02134”不会变成 2134。超出 JavaScript 安全范围的大整数也会保留为字符串。

没有表头行也能转换吗?

可以。关闭表头选项;各列会被命名为 column_1、column_2,依此类推,每一行都被视为数据。

相关工具