DevToolPal
简

CSV 与 JSON 互转

把 CSV 转成 JSON,或把 JSON 转回 CSV。自动识别分隔符,支持表头和数据类型识别。

本地处理,不上传

选项

方向

输入

0 字符 · 0 B

输出

0 字符 · 0 B

功能简介

这个工具可以把 CSV(逗号分隔值)转换成 JSON,也可以把 JSON 转回 CSV。表格软件、数据库和数据分析工具导出的通常是 CSV,而接口、JavaScript 代码和配置文件需要的是 JSON。粘贴任意一种格式,另一种格式马上就会出现。

解析器遵循 CSV 标准 RFC 4180:字段可以用双引号包起来,引号字段里的双引号写成两个(""),引号字段里可以包含逗号和换行。Windows(CRLF)和 Unix(LF)换行都支持,Excel 导出文件开头的 UTF-8 BOM 会被自动去掉。

使用方法

  1. 把 CSV 粘贴到「输入」框,或把 .csv、.tsv 文件拖进去,也可以点「示例」。
  2. 「分隔符」保持「自动识别」,或手动选择逗号、分号(欧洲版 Excel 常用)、Tab 或竖线。
  3. 打开「第一行是表头」时,输出是以列名为键的对象数组;关闭后输出二维数组。
  4. 打开「识别数字和布尔值」时,42 会变成数字,true 会变成布尔值;关闭后所有单元格都保留为文本。
  5. 把「方向」切换到 JSON → CSV 即可反向转换。复制或下载结果。

JSON 转 CSV 时,输入应该是对象数组。列是所有对象键的并集,按第一次出现的顺序排列,缺少某个字段的行会得到空单元格。包含分隔符、双引号或换行的单元格会自动加引号。

示例

id,name,active
1,Ada Lovelace,true
2,"Turing, Alan",false

会变成

[
  { "id": 1, "name": "Ada Lovelace", "active": true },
  { "id": 2, "name": "Turing, Alan", "active": false }
]

处理不规范的文件

空的表头单元格会被命名为 column1、column2 等,重复的列名会加上后缀(如 name_2),所以不会有值被覆盖。比表头短的行用空字符串补齐,多出来的单元格会得到自己的列名。如果某个引号字段没有闭合,错误提示会给出它开始的准确行号和列号。

常见问题

› 我的 CSV 会被上传到服务器吗?

不会。解析和转换都在你的浏览器里完成,包含客户或业务数据的文件不会离开你的设备。

› 分隔符是怎么自动识别的?

选「自动识别」时,工具会统计第一行里逗号、分号、Tab 和竖线出现的次数(引号内的不算),取最多的那个。如果识别错了,手动选择分隔符即可。

› 为什么很长的数字被保留成了字符串?

JavaScript 的数字超过 15 到 16 位就会丢失精度,所以订单号、手机号、卡号这类长整数会保留为字符串。像 007 这样有前导零的值也会保留为文本。

› JSON 转 CSV 时,嵌套的对象怎么处理?

嵌套的对象和数组会以紧凑 JSON 的形式写进一个单元格,数据不会丢失,之后还能再解析回来。