跳到内容

📊 CSV ⇔ JSON 转换

CSV ⇔ JSON 双向转换,支持自定义分隔符、表头、引号值和空单元格。

完全免费 无需注册 浏览器内完成 5 种语言 深色模式

🔗 相关工具

📖 常见的坑

在 CSV 与 JSON 之间互转,可指定分隔符、是否有表头行以及引号处理方式。处理全部在浏览器内完成。CSV 没有官方规范——RFC 4180 只是事后总结的常见做法,对任何人都没有约束力。因此转换是否出问题,取决于对方软件把什么叫作 CSV

情形 会发生什么 怎么处理
用 Excel 打开出现乱码 Excel 打开 CSV 时,若没有 BOM,就会按系统默认编码解释。在日文版 Windows 上默认是 Shift_JIS 系(CP932),于是 UTF-8 的 CSV 就乱了。文件本身没错,只是 Excel 猜错了,但在接收方看来就是「坏文件」。 发给 Excel 的 CSV 请保存为 UTF-8 with BOM:开头的 EF BB BF 会让 Excel 明确按 UTF-8 打开。但 BOM 在其他工具中是累赘——用程序读取时,第一个列名会带上不可见字符,你以为是 id,实际却是 id,键永远匹配不上。为 Excel 与系统对接分别产出不同文件,最终争议最少。
值中的逗号或换行导致列错位 CSV 是一种值中可以包含分隔符本身的格式。地址与自由文本里常有逗号,注释也可能跨行。用双引号包裹即可表达,但引号内出现双引号时必须写成 ""——而现实中大量 CSV 并不遵守这条规则。 当出现列数不符的行时,请把它们另存到单独文件,而不是直接丢弃。原因几乎都是引号不一致,而一行错位会让其后所有行全部损坏。若文件由你产出,把分隔符改为制表符(TSV)可大幅减少此类事故——因为值中几乎不会出现制表符。可先用 CSV 清理找出列数不齐的行。
数字与日期被自动改写 CSV 不携带类型信息:一切都是文本,由读取方去猜。于是就出现了这些熟悉的破坏:前导零消失(邮编 0123456 变成 123456)、带连字符的值变成日期长数字变成科学计数法(电话号码、16 位 ID)。转成 JSON 也不保险——只要看起来像数字的都被当作 number,同样的问题依旧存在。 请一开始就确定:ID、邮编、电话号码一律按字符串处理。在 JSON 侧写成带引号的 "id": "0123456"。若必须用 Excel 打开,也有在值前加 = 写成 ="0123456" 的办法,但那是 Excel 专用格式,在其他工具中会坏掉。实务上最可靠的做法,是把「用 Excel 打开、编辑、再保存」这一步从流程中去掉——类型正是在这一次往返中丢失的。

CSV 转 JSON 无法表达嵌套结构。用 user.name 这类带点的列名表示层级是常见惯例,但并非标准,完全取决于读取方的实现。反方向上,任何包含数组或对象的字段,都会在你所选的扁平化方式中丢失信息。与其把非表格数据硬塞进 CSV,不如改用 每行一个 JSON 的 JSON Lines(.jsonl,既不易出错也支持流式处理。CSV 真正适用的场景,是需要人用电子表格软件打开查看时。

📖 使用方法

  1. 1
    设置方向和分隔符
    选择 CSV → JSON 或 JSON → CSV 方向,以及逗号、制表符、分号或竖线分隔符。
  2. 2
    输入数据
    将数据粘贴到左侧输入框。点击示例按钮加载示例数据。
  3. 3
    复制结果
    转换结果显示在右侧。点击复制按钮将其复制到剪贴板。

❓ 常见问题

支持没有表头行的 CSV 吗?
是的。选择"无表头行"后,每行作为数组而非对象输出。
带逗号的引号值能正确处理吗?
是的。解析器支持 RFC 4180 引用处理,包括含逗号或换行符的字段。
支持大文件吗?
所有处理在浏览器内完成。对于非常大的文件(数万行以上),处理可能较慢。
🐛 此工具出现问题了吗?

免费、无需注册。仅提供复现步骤也有帮助。报告将直接发送给运营者并用于改进。

※ 为复现问题,浏览器信息 (UA / 屏幕 / 语言 / URL) 将自动发送