如何把 CSV 转换为 JSON
- 保持选中 CSV → JSON,然后粘贴数据:Excel、Google 表格或数据库导出的文件,或直接从电子表格复制的单元格(粘贴后是制表符分隔的)都可以。
- 分隔符可以保持自动检测,也可以手动选择逗号、分号、制表符或竖线。
- 勾选第一行为表头时,每一行都会变成以列名为键的对象;取消勾选则得到二维数组。
- 转换数字和 true/false 会把数字形式的文本转成 JSON 数字,把
true、false、null转成对应的 JSON 值。取消勾选则所有值都保留为字符串。 - 复制结果,或点击下载保存为
data.json。状态栏会显示转换了多少行。
点击示例会按当前选择的方向载入示例数据,可以快速看到引号是如何处理的。
如何把 JSON 转换为 CSV
选择 JSON → CSV,粘贴一个对象数组。任何对象中出现过的键都会成为一列,按键首次出现的顺序排列,因此字段缺失或多出的记录也能对齐,缺少的值留空。嵌套的对象和数组会以 JSON 文本的形式放进一个单元格,null 会变成空单元格。二维数组会逐行原样写出,不加表头;单个对象则变成一行表头加一行数据。分隔符为自动检测时,输出使用逗号。
下载会在开头加上 UTF-8 字节顺序标记(BOM)后保存为 data.csv。Excel 依靠这个标记识别编码,所以中文和带重音的字母都能正常显示,不会变成乱码。
CSV 引号规则简述
CSV 并没有唯一的官方规范,但 RFC 4180 描述了通行的格式,本工具也遵循它:
- 包含分隔符、双引号或换行符的字段要用双引号括起来:
"Paris, France"。 - 这类字段内部的双引号要写两次:
"Carol ""CJ"" Jones"表示Carol "CJ" Jones。 - 带引号的字段可以跨越多行,其中的换行符属于值的一部分。
- 写出 CSV 时,本工具还会给首尾带空格的值加上引号,以免打开文件的程序把空格去掉。
示例
本页的 CSV 示例如下:
name,city,age,member |
Alice,"Paris, France",34,true |
Bob,Tokyo,28,false |
"Carol ""CJ"" Jones",São Paulo,41,true |
它会转换成三个对象。第一个是 {"name": "Alice", "city": "Paris, France", "age": 34, "member": true}:引号里的逗号保留在值中,34 变成数字,true 变成布尔值。第三行的名字是 Carol "CJ" Jones,在 JSON 中写作 "Carol \"CJ\" Jones"。
反方向的 JSON 示例中,只有 Bob 有一个 tags 数组。结果是表头 name,city,age,tags,Alice 的 tags 单元格为空,Bob 的是 "[""new""]"——数组以 JSON 文本写入,因为包含引号,所以整体加了引号。
自动检测与类型转换的规则
- 分隔符:检查第一行中逗号、分号、制表符和竖线的数量,取出现最多的那个。如果表头的引号里含有逗号,或者第一行比较特殊,请手动选择分隔符。
- 数字:只转换
34、-2.5、1e3这样的普通数字。带前导零(02134)、加号、千位分隔符或小数逗号(19,90)的值保留为文本,所以邮政编码、电话号码和欧洲格式的价格不会被破坏。 - 布尔值和 null:只转换小写的
true、false和null;来自 Excel 的TRUE仍是字符串。 - 表头:空白的表头单元格按位置命名为
column1、column2等;重复的列名会加上_2,确保不丢失任何一列。
需要注意的问题
- 长 ID。JSON 数字超过约 15~16 位就会丢失精度,
12345678901234567890会变成12345678901234567000。如果某一列是较长的账号、订单号或条形码,请关闭类型转换。 - 列数不齐的行。使用表头时,单元格不足的行会在缺少的列中填入空字符串,超出最后一个表头列的单元格会被丢弃。如果数据像是不见了,请检查值中是否有未加引号的逗号。
- 给 Excel 用的分号 CSV。在德国、法国等用逗号作小数点的地区,Excel 期望的是分号分隔的文件。如果文件要在这样的环境中打开,请在把 JSON 转成 CSV 之前选择分号。
- 空行会被跳过;Windows(CR LF)和 Unix(LF)两种换行格式都能识别。
常见问题
输出的 JSON 能直接用于 API 和代码吗?
可以,它是缩进两个空格的标准 JSON。要压缩成一行或检查手动修改过的文件,请粘贴到 JSON 格式化中。
能直接转换 Excel 文件吗?
不能直接转换 .xlsx 文件,但你可以在 Excel 或 Google 表格中选中单元格并复制,再粘贴到这里。制表符分隔的文本会被自动识别。
我的数据会被发送到哪里?
哪里也不去。解析和转换都在页面内部完成,处理含有客户或员工信息的表格时也可以放心。
为什么列的顺序变了?
在 JSON → CSV 中,列按照键在所有对象中首次出现的顺序排列。把希望排在前面的键先写进第一个对象,或者之后在电子表格中调整列顺序。