📊 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
设置方向和分隔符选择 CSV → JSON 或 JSON → CSV 方向,以及逗号、制表符、分号或竖线分隔符。
-
2
输入数据将数据粘贴到左侧输入框。点击示例按钮加载示例数据。
-
3
复制结果转换结果显示在右侧。点击复制按钮将其复制到剪贴板。
❓ 常见问题
支持没有表头行的 CSV 吗?
是的。选择"无表头行"后,每行作为数组而非对象输出。
带逗号的引号值能正确处理吗?
是的。解析器支持 RFC 4180 引用处理,包括含逗号或换行符的字段。
支持大文件吗?
所有处理在浏览器内完成。对于非常大的文件(数万行以上),处理可能较慢。
🐛 此工具出现问题了吗?
免费、无需注册。仅提供复现步骤也有帮助。报告将直接发送给运营者并用于改进。
✅
感谢您的反馈!
已送达运营者,将用于改进工具。