主题
CSV ⇄ JSON 转换
接口返回一堆 JSON,产品要一份能在 Excel 里看的表。或者手上是一份 CSV,要转成 JSON 灌进测试环境。

「CSV ⇄ JSON 转换」填入示例输入后,右侧即时给出结果(图中数据为示例)。在浏览器本地完成、数据不离开浏览器,免费。
CSV 的两个经典坑
CSV 看起来最简单,实际最容易出事,因为它没有统一标准。
一、编码。 Excel 在中文 Windows 上默认按 GBK 读取,而多数程序导出的是 UTF-8。用 Excel 直接打开 UTF-8 的 CSV,中文全是乱码——文件本身没问题,是打开方式不对。
带 BOM 的 UTF-8 能让 Excel 正确识别,代价是某些程序会把 BOM 当成第一个字段的一部分。
二、分隔符与引号。 字段里如果本身含逗号(比如地址「北京市朝阳区,某某路」),必须用引号包起来,否则一行会被切成多列,而且后续所有列全部错位。
这类错误的特征是:大部分行正常,个别行列数不对。
分隔符参数
默认逗号。需要改的情况:
- 数据里逗号很多 → 用 Tab 或分号,能省掉大量引号
- 从某些欧洲地区的系统导出的 CSV → 常用分号(因为那边逗号是小数点)
首行为表头
默认开启。开启时 CSV 的第一行成为 JSON 的字段名:
name,age → [{"name":"张三","age":"30"}]
张三,30关闭时会生成数组的数组。多数情况保持开启。
注意:表头里如果有重复的列名,转成 JSON 后会互相覆盖——转之前先检查列名唯一。
JSON 转 CSV:嵌套结构会丢
这是反方向的主要限制。
json
{"user": {"name": "张三", "tags": ["a", "b"]}}展平成表格时,tags 这个数组要么被拼成一个字符串,要么被拆成多列,两种处理都会让下游的人困惑。
转换前先确认数据是不是「平的」——每条记录都是一层键值对。不平的话,先决定嵌套字段怎么处理再转。
数字和前导零
CSV 里一切都是文本。转成 JSON 时,030 会保留成字符串 "030" 还是变成数字 30,取决于实现。
手机号、订单号、邮编这类「看着像数字的编号」,务必确认转换后前导零还在。这个问题在 Excel 里更严重——它会主动把 00123 变成 123。
浏览器本地处理
数据不上传。处理客户名单、业务数据可以放心。
相关工具
- 表格处理 —— 多个 Excel/CSV 合并、去重、比对
- JSON 转 Excel —— 直接出 xlsx 而不是 CSV
- 代码格式化/压缩 —— 转换前先校验 JSON 是否合法