CSV ↔ JSON 转换
表格数据与 JSON 双向互转,自动识别分隔符
转换方向
把纯数字转成数字、true/false 转成布尔值。注意前导零的值(如 007)会保留为字符串,避免丢信息。
请输入要转换的内容
最后更新:2026-10-11
工具介绍
CSV 看着简单,解析起来却有不少坑:字段里可能含逗号、含换行,甚至含引号本身 —— 这些都必须用双引号包裹并把引号写成两个才能正确表示。用 split(",") 处理这类文件一定会切错列。本工具按 RFC 4180 标准解析,正确处理引号包裹、`""` 转义与引号内的换行,还会自动嗅探实际使用的分隔符(Excel 在部分区域设置下导出的是分号分隔)。转成 JSON 时可选是否推断数字与布尔类型、空字段是否输出 null。整个过程在浏览器本地完成,文件不会上传到任何服务器。
功能特性
正确处理引号与换行
字段内可以含分隔符与换行,只要用双引号包裹即可;字段内的引号写成两个。本工具按标准解析,不会切错列。
分隔符自动识别
自动判断是逗号、制表符、分号还是竖线分隔,也可手动指定。Excel 在部分区域设置下导出的是分号分隔。
列数不齐自动对齐
某行列数少于表头时补空值,而不是丢弃该列,避免转成 JSON 后某些对象莫名缺键。
表头重复自动去重
重复或空白的列名会自动加序号后缀,防止 JSON 对象里同名键互相覆盖导致数据静默丢失。
可选类型推断
开启后纯数字转为数字、true/false 转为布尔值。前导零的值(如 007)会保留为字符串,避免丢失信息。
双向转换
既支持 CSV → JSON,也支持 JSON → CSV。嵌套对象会自动序列化为 JSON 字符串填入单元格。
怎么用
- 1
选择方向
在「转换方向」里选择 CSV → JSON 或 JSON → CSV。
- 2
粘贴内容
把 CSV 或 JSON 内容粘贴到输入框,也可点「填入示例」快速试用。
- 3
调整选项
选择分隔符(可自动识别)、是否首行为表头、是否推断类型、空值如何处理。
- 4
复制结果
「转换结果」区给出输出,可一键复制或查看表格预览。
参数说明
- 转换方向
- CSV → JSON 或 JSON → CSV。
- 分隔符
- 逗号、制表符、分号、竖线,或自动识别。自动识别会选列数最一致的那个。
- 首行是表头
- 开启后首行作为 JSON 对象的键;关闭则输出二维数组。
- 推断数据类型
- 把数字与布尔值转成对应类型。前导零的字符串不受影响。
- 空字段输出为 null
- 开启后空单元格输出 null,关闭则输出空字符串。
适用场景
- 把运营导出的 Excel/CSV 数据转成 JSON 给前端用
- 把接口返回的 JSON 数组转成表格交给同事打开
- 检查导出的 CSV 有没有列数错位、引号未闭合等问题
- 给测试数据准备 CSV 与 JSON 两份格式
常见问题
关于这个工具,你可能会问
为什么不直接用 split(",")?
因为 CSV 的字段里可能含逗号。按标准,这类字段会用双引号包裹,例如 `"Beijing, China",100`。用 split(",") 会把它切成三段而不是两段,列就全错位了。本工具按 RFC 4180 处理引号包裹、`""` 转义以及引号内的换行。
Excel 导出的文件分隔符是分号?
在部分区域设置下确实如此 —— 例如欧洲一些地区用逗号作小数点,于是把列表分隔符改成了分号。本工具的分隔符「自动识别」会统计各候选分隔符切出的列数是否一致,从而猜出正确的那个;也可以在选项里手动指定。
类型推断会不会把数据改错?
本工具特意避开了几个容易出错的情形:带前导零的编号(如 007、0012)保留为字符串,因为转成数字会丢掉前导零;过长的数字串也建议保持字符串,以免超出浮点精度。若你的数据对类型敏感,直接关掉推断最保险。
为什么有些行比表头短?
CSV 允许行末的空字段省略不写,这属于合法情况。本工具会把缺失的位置补成空值,保证每行长度一致,这样转成 JSON 后每个对象都有完整的键。
表头有重复列名会怎样?
JSON 对象的键必须唯一,否则后出现的会覆盖前面的,导致数据静默丢失。本工具会自动把重复列名改成 `name_2`、`name_3` 的形式,并跳过已占用的名字,确保每个字段都能保留下来。
能处理多大的文件?
输入上限为 500 万字符、最多解析 10 万行。超过行数上限会截断并明确提示,不会静默丢数据。由于是纯前端处理,实际速度取决于你的设备,超大文件建议先拆分。
嵌套的 JSON 对象能转成 CSV 吗?
可以,但会被序列化成 JSON 字符串放进单个单元格,例如 `{"deep":1}` 会变成 `"{""deep"":1}"`。这是 CSV 的结构决定的 —— 它只有行与列,没有嵌套概念。若需要展开嵌套结构,建议先用其他工具扁平化。
数据会被上传吗?
不会。解析与转换全部在浏览器内存里完成,内容不发送也不存储。你可以打开开发者工具的网络面板确认没有相关请求。