关于JSON转CSV
JSON 是应用和API传送数据的格式。CSV 是表格软件、数据库和导入工具读取数据的格式。从网络服务导出订单、联系人或日志时,拿到的往往是JSON,可老板、店铺软件或邮件群发工具要的却是CSV。
这个转换器把 JSON数组转成CSV行:每个对象变成一行,每个键变成一列。粘贴JSON或打开 .json 文件,CSV会随着你的输入显示在下方。
一切都在 你的浏览器中 完成,数据不会被上传。
功能特点
- 实时输出 — 输入或粘贴时,CSV同步更新
- 展开嵌套对象 — {"address": {"city": "London"}} 变成列 address.city
- 每个键都成为一列 — 即使只有部分对象有这个键
- 自动找到列表 — 当数据行在 {"data": [...]} 这样的对象里时,会使用其中的列表
- 打开或拖入 .json 文件 — CSV沿用同样的文件名
- 分隔符 — 逗号、分号、制表符或竖线
- 引号处理正确 — 值里的逗号、引号和换行都会被妥善保留
嵌套JSON如何变成列
CSV是平面的:一行里每列一个值。JSON可以嵌套。开启 展开嵌套对象(默认)后,转换器会进入每个对象,用点号连接各级键。各类值的处理如下:
| JSON值 | CSV单元格 |
|---|---|
"name": "Ada" | 列 name = Ada |
"address": {"city": "London", "zip": "W1J 7NT"} | 列 address.city = London 和 列 address.zip = W1J 7NT |
"tags": ["math", "code"] | 列 tags = math, code |
"items": [{"id": 1}, {"id": 2}] | 列 items = 以JSON文本表示的列表 |
"paid": true | true |
"note": null | 空单元格 |
关闭 展开 后,嵌套对象会以JSON文本的形式放在一个单元格里,不会丢失任何内容,也不会出现“[object Object]”。
框中的示例会变成下面的CSV:
| id | name | address.city | address.zip | tags |
|---|---|---|---|---|
| 1 | Ada Lovelace | London | W1J 7NT | math, code |
| 2 | José Álvarez | Madrid | 28013 | design |
数据行在对象里面时
许多API会把列表包在一个对象里:{"status": "ok", "count": 2, "data": [ … ]}。转换器会往里找,选出 最长的对象列表 来用。框下方的提示会说明用了哪一个,例如 *已使用“data”中的列表*。没有列表的单个对象会变成一行。
逗号还是分号?
标准分隔符是逗号。但在许多欧洲国家,逗号是小数点,所以那里的Excel需要 分号。如果CSV在Excel里打开后所有内容都挤在A列,请选择分号再重新下载。想彻底避开这个问题,可以用 JSON转Excel 生成真正的Excel文件。
常见问题
如何把JSON文件转成CSV?
点击“打开 .json 文件”(或把文件拖到框里),CSV会立即出现。点击“下载”即可保存,文件名与JSON相同。
嵌套对象是怎么处理的?
每个嵌套的键都会变成独立的一列,用点号连接:customer.address.city。取消勾选“展开嵌套对象”,则每个嵌套对象会以JSON文本的形式放在一个单元格里。
如果各个对象的键不一样呢?
任何一个对象里出现过的键都会成为一列。没有该键的行,对应单元格为空。
能把CSV再转回JSON吗?
可以——在页面顶部切换到 CSV → JSON,或使用 CSV转JSON 页面。
有大小限制吗?
没有上传限制,因为根本不上传。非常大的文件(几十MB)在转换时可能会让页面变慢。
我的数据安全吗?
安全。转换在你的浏览器内完成,不会向服务器发送任何内容。
相关工具
- JSON转Excel — 同样的数据,生成真正的 .xlsx 工作簿
- CSV转JSON — 反方向转换
- JSON格式化工具 — 先检查并整理你的JSON
- 合并CSV文件 — 把这个CSV与其他CSV合并
- CSV转Excel — 在Excel中打开CSV而不丢失开头的零
使用方法
- 把JSON粘贴到框中,或点击 打开 .json 文件
- 保持 展开嵌套对象 开启,每个嵌套的键就会成为一列
- 选择 分隔符 — 大多数程序用逗号,许多欧洲国家的Excel用分号
- 在输出框中检查CSV
- 点击 复制,或点击 下载 保存为 .csv 文件