ToolConvoyToolConvoyv2.6
DATA

CSV 转 JSON — 在浏览器中将 CSV 表格转换为 JSON

将 CSV 表格数据转换为 JSON。自动处理分隔符、引号字段、BOM 与类型推断 —— 全部在浏览器中完成,无上传。

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

CSV 是最接近「通用数据格式」的东西:每个电子表格应用、每个数据库导出、绝大多数 API 都能生成它,并且几乎每个工具都能读取它。JSON 则是最接近通用 编程 格式的东西:每种现代语言都原生解析它,每个 Web API 都返回它,每个配置 schema 都接受它。在两者之间相互转换是数据工作中最常见的杂活之一,而且这种转换总是以一种特定的、反复出现的方式让人烦心。

烦心的不是格式本身 —— 转换不过是几行代码。烦心的是边界情况。最常见的三种:文件开头的 UTF-8 字节顺序标记(对朴素解析器来说像三个字节的垃圾数据)、包含分隔符字符的引号字段(字符串内部的逗号),以及欧洲版 Excel 用分号作分隔符的习惯(因为逗号在那里是小数点)。一个表现良好的 CSV 转 JSON 工具无需任何配置就能处理这三种情况,因为它们并非边界情况 —— 它们是真实数据中最常见的输入形态。

转换完成后,下一步自然走向取决于 JSON 的用途。如果它要喂给一个 Web 应用或 Node.js 脚本,那么「对象数组」就是你想要的输出。如果它是某个 TypeScript 或 Go 服务的输入,再过一遍 JSON-to-TypeScript 或 JSON-to-Go 转换器,就能生成与列集合精确匹配的类型。如果目的地是数据库或分析管道,NDJSON 模式只需要一键点击,省去后面再换工具的麻烦。

广告

使用方法

  1. 粘贴或拖入 CSV

    把 .csv 文件拖入,或把表格文本粘贴到输入框。工具会自动检测分隔符(逗号、分号、制表符)以及是否存在 UTF-8 BOM。

  2. 选择输出模式

    可选「对象数组」(最常见的 JSON 形态)、「二维数组」(体积更小、不依赖表头)或 NDJSON(每行一个对象,适合流式管道)。

  3. 复制或下载结果

    把 JSON 复制到剪贴板,或下载为 .json 文件。除了浏览器内存,没有大小限制。

常见问题

会保留列的顺序吗?

会。JSON 对象本身不保证键的顺序,但我们按 CSV 表头中出现的顺序输出键,所以在 code review 中对比两份输出仍然清晰可读。

第一行怎么处理?

默认情况下第一行被当作表头。如果文件没有表头,切换到「二维数组」模式可以跳过表头解析。

能转换大于 100 MB 的文件吗?

实际中可以,但解析时界面可能会卡顿。转换本身是纯内存操作,绝不与服务器往返,所以唯一的限制是浏览器标签页的可用内存。

能处理欧洲 Excel 用的分号分隔 CSV 吗?

可以 —— 分隔符自动检测会扫描文件的前几 KB,在逗号、分号、制表符和竖线之间做出选择。你也可以在设置中强制指定分隔符。

限制说明

  • 不支持二进制 CSV我们把 CSV 当作文本处理。从含公式的工作表保存为 .csv 的 Excel 文件可能只导出缓存值,数据透视表则会扁平化导出 —— 这两种情况在本工具中都无法恢复。
  • 不做电子表格公式求值公式求值、数据透视表和宏输出都不支持。这些场景请用电子表格应用处理,然后再把公式展开后的结果重新导出为 CSV。
  • 每个文件只能使用单一分隔符混合分隔符的 CSV(罕见,但确实存在于遗留数据导出中)无法被自动检测。在转换前用文本编辑器或一行 Python 脚本预处理。

平台说明

macOS
在 macOS 上,Numbers 和 Excel 默认都导出 UTF-8 CSV。旧版 Mac 版 Excel 仍可能输出 MacRoman 编码 —— 如果你看到 é 这类乱码而不是 é,请重新保存为 UTF-8。
Windows
Windows 版 Excel 在某些语言区域下仍默认使用 ANSI 或 UTF-16。请从导出下拉菜单中选择「CSV UTF-8 (逗号分隔)」,一定不要选「CSV (逗号分隔)」,以避免编码问题。
Linux
大多数 Linux 工具(cut、awk、miller)默认写 UTF-8。如果管道输入来自 Windows 环境的文件,先执行 `iconv -f cp1252 -t utf8 input.csv > output.csv`。
Web
完全在浏览器中运行。页面加载完成后即可离线使用。在网络受到监控的受限环境中做临时转换时非常方便。
广告

相关工具

广告