CSV 转 JSON 在线工具 — 表格数据转对象数组
把 CSV 转成 JSON(自动识别分隔符、表头、类型转换、嵌套还原)
在浏览器中处理 · 不上传任何内容
功能简介
要把表格从电子表格或数据库里导出来,通常用 CSV,而 Web 代码大多需要 JSON。这个工具把粘贴的 CSV 转换成 JSON。默认输出以表头为键的对象数组,没有表头时输出二维数组。
使用方法
- 把整个 CSV 粘贴到输入框,或用“打开 CSV 文件”读取文件(UTF-8、UTF-16 文件以及韩文版 Excel 保存的 EUC-KR 文件可以直接打开)。
- 分隔符保持“自动识别”或手动选择。如果第一行就是数据,请关闭表头选项。
- 想把数字和 true/false 输出为 JSON 类型时,开启类型转换。
- 开启嵌套还原后,
address.city这样的列会还原成{"address":{"city":...}}。处理由 JSON 转 CSV 工具生成的 CSV 时很方便。 - 选择缩进方式,复制结果。
工作原理
-
解析遵循 RFC 4180。双引号内的分隔符和换行属于值的一部分,两个连续双引号读作一个。完全空白的行会被跳过。
-
类型转换只作用于小写的
true、false,以及-12、3.5、1e3这样的普通十进制写法。007、+1、1e999和超过 9007199254740991 的整数保留为字符串。空单元格是空字符串。 -
重复的表头名会变成
name、name_2、name_3,不会有列丢失。 -
嵌套还原会把带点的表头叠成对象,并把以
[或{开头且是合法 JSON 的单元格展开成数组和对象。如果带点的键和已有的值冲突,就保留为原样的键名。 -
输入开头的 UTF-8 BOM 会被去掉。
-
往返转换的注意事项:空单元格变成空字符串而不是
null;开启类型转换后,"123"这样的数字字符串会变成数字123。因此 JSON → CSV → JSON 不一定能完全还原原始数据。
示例
输入:
name,age,address.city
张三,30,Beijing
开启类型转换和嵌套还原后的结果:
[{"name": "张三", "age": 30, "address": {"city": "Beijing"}}]
常见问题
需要自己选择分隔符吗?
默认会根据前几行的样子,从逗号、分号、制表符和竖线中自动识别。如果某个值里包含大量其他分隔符导致识别错误,可以手动指定。识别出的分隔符会显示在结果上方。
为什么数字变成了字符串?
默认所有值都保留为字符串。开启“将数字和 true/false 转换为 JSON 类型”即可转换。即便如此,007 这种带前导零的值、+1,以及超过 2^53 的整数仍会保留为字符串,以免丢失信息。
用中文版 Excel 保存的 CSV 能正确读取吗?
请用“打开 CSV 文件”读取。文件有 UTF-8 或 UTF-16 的字节顺序标记(BOM)时按它判断编码;否则先按 UTF-8 读取,失败后依次尝试 EUC-KR(CP949,韩文版 Excel 的默认编码)和 Windows-1252(西欧版 Excel),页面会显示实际使用的编码。GBK/GB2312 编码不受支持,简体中文 Excel 默认保存的“CSV(逗号分隔)”是 GBK,请在 Excel 中另存为“CSV UTF-8(逗号分隔)”后再打开。从其他程序复制时已经变成乱码的文本,粘贴进来也无法修复。
字段数不对的行会怎样?
仍会转换,工具会把这些行号列在“需要检查的行”中。缺少的单元格在结果中不出现对应的键,多出来的单元格会被丢弃。