JSON 转 CSV 怎么操作?含嵌套 JSON 扁平化教程
接口返回一串 JSON,想放进 Excel 看或导入数据库,就需要把它转成 CSV 表格。JSON 转 CSV,是指把 JSON 里的对象数组转换成逗号分隔的纯文本表格,每个对象变成一行、每个字段变成一列。难点主要在两处:嵌套对象 和数组怎么拍平成列,以及转出来用 Excel 打开会不会乱码。整个过程在浏览器本地完成,数据不上传。
- JSON 转 CSV 的前提是“对象数组”结构:一个数组里若干结构相近的对象。
- 工具把对象的 key 作为表头、每个对象作为一行,自动对齐字段。
- 嵌套对象可扁平化成 a.b 这样的列名,数组字段可拼接或展开。
- 导出的 CSV 带 UTF-8 BOM,用 Excel 直接打开中文不乱码。
- 全程在浏览器本地处理,数据不上传服务器,适合含敏感字段的数据。
JSON 转 CSV 是什么、为什么转
JSON 转 CSV,是把 JSON 的对象数组转换成逗号分隔的表格文件,让数据能被 Excel 打开、被数据库导入。 二者擅长的事不同,转换是为了换一种更适合当前用途的形态。
CSV(Comma-Separated Values)是一种以逗号分隔字段、每行一条记录的纯文本表格格式,结构扁平、通用性强, 被 Excel、数据库和各类程序广泛支持。
JSON 和 CSV 各自擅长什么
JSON 适合表达带层级的结构化数据,是接口传输的常用格式;CSV 是扁平的二维表,适合放进表格软件查看、 做统计或批量导入。把 JSON 转成 CSV,也就是从“给程序读”转成“给人看、给表格用”。
| 对比项 | JSON | CSV |
|---|---|---|
| 结构 | 支持嵌套、层级 | 扁平二维表 |
| 常见用途 | 接口传输、配置、程序间交换 | 表格查看、统计、导入数据库 |
| 打开方式 | 文本编辑器、代码 | Excel/WPS 直接打开 |
| 人读友好度 | 层级深时不易读 | 一目了然 |
什么时候需要转
常见的几种情况,看到就知道该转 CSV 了:
- 接口返回 JSON,要给同事在 Excel 里看:转 CSV。
- 要把一批数据导入数据库或 BI 工具:转 CSV。
- 要排序、筛选、求和统计:转 CSV 后用表格软件处理。
- 数据本身是规整的对象数组:很适合转 CSV。
- 数据层级很深、字段差异大:转 CSV 前先想好怎么扁平化。
- 要再变回程序好处理的格式:用 CSV 转 JSON 转回去。
怎么把 JSON 转成 CSV
三步就能完成:粘贴 JSON、确认结构、下载 CSV。JSON 要是“对象数组”结构,工具才能正确对齐成表格。
操作步骤
- 打开 JSON 转 CSV,把 JSON 粘贴进去或导入文件。
- 确认数据是对象数组,例如
[{"name":"张三","age":20}, ...],工具会自动把 name、age 识别为表头。 - 按需设置:嵌套字段是否扁平化、分隔符(逗号/分号/制表符)、是否带 BOM。
- 点转换,预览表格无误后下载 CSV。
转出来用 Excel 打开不乱码
导出时保留默认的 UTF-8 BOM,Excel 打开中文就不会变乱码。CSV 本身不记录编码,Excel 在没有 BOM 时容易按 GBK 去猜,中文便乱。带上 BOM 等于明确告诉 Excel“这是 UTF-8”。实测一份 5000 行、十几个字段的对象数组 JSON,在浏览器本地转成 CSV 基本是秒级完成,真正要核对的是嵌套字段有没有按预期拍平。
嵌套 JSON、数组怎么扁平化
CSV 是二维表、没有层级,嵌套的 JSON 需要先“拍平”才能放进去。扁平化就是把内层结构按规则展开成列。
嵌套对象:用点号拼列名
像 {"user":{"name":"张三","city":"北京"}} 这种, 扁平化后会得到 user.name、user.city 两列,值分别是“张三”“北京”。层级再深也按同样规则继续拼。
数组字段:拼接或展开
字段的值是数组时,处理方式有两种:一种是把数组拼成一个单元格(如 "tag1;tag2"), 保持每条记录仍是一行;另一种是展开成多行或多列,适合逐项分析。简单浏览用拼接,深入分析按需展开。 如果 JSON 嵌套很乱不好看,先用 JSON 格式化/校验 理清结构再转。
转出来用 Excel 打开乱码怎么办
CSV 乱码几乎都出在编码上,和数据内容无关。记住一句话就能避开:导出带 UTF-8 BOM,Excel 打开就正常。
乱码的根源
CSV 是纯文本,文件里并不写明用的是哪种编码。当文件是 UTF-8 却没有 BOM 时,中文版 Excel 常默认按 GBK 读取,中文就成了乱码。这是 CSV 配合 Excel 时很常见的坑。
怎么修
用本工具转换并保留 BOM,导出的 CSV 用 Excel 直接打开即正常;若手头已有乱码 CSV,重新用工具转一遍、 带上 BOM 即可。也可以在 Excel 里用“数据-从文本/CSV”导入时手动指定 UTF-8 编码。
和 CSV 转 JSON 的区别
JSON 转 CSV 是“拆层级、变表格”,CSV 转 JSON 是“读表头、组对象”,方向相反,用途也不同。
方向相反:拆表格 vs 组对象
- JSON 转 CSV:把对象数组拍成二维表,便于在 Excel 查看、做统计、导入数据库;嵌套会被扁平化。
- CSV 转 JSON:把表格的每一行按表头组装成对象、汇成数组,便于程序读取和接口使用; 用 CSV 转 JSON 完成。
怎么判断该转哪边
一个实用心法:数据“给人看、进表格”就转 CSV,“给程序用、走接口”就转 JSON。两个方向的工具搭配,能在两种形态间自由来回。
常见问题
- 怎么把 JSON 数据转成 CSV 表格?
- 把 JSON 粘贴进 JSON 转 CSV 工具,确认它是对象数组(一个数组里若干对象),点转换即可下载 CSV。工具会把对象的字段名作为表头、每个对象作为一行,全程在浏览器本地完成。
- JSON 转 CSV 中文乱码怎么解决?
- 用本工具导出的 CSV 默认带 UTF-8 BOM,Excel 直接打开不乱码。如果是别处导出的 CSV 在 Excel 里乱码,多半是 UTF-8 无 BOM 被当成 GBK 读取,重新用本工具转换、保留 BOM 即可。
- 嵌套的 JSON 能转成 CSV 吗?
- 可以。CSV 是二维表格、没有嵌套层级,所以嵌套对象会被“扁平化”,比如 user.name、user.age 这样用点号拼成列名;内层是数组时,可拼接成一个单元格或按需展开成多列。
- JSON 不是数组、是单个对象,能转吗?
- 能,会转成只有一行的 CSV。若你的 JSON 是 {"data": [...]} 这种把数组包在某个字段里,先取出里面的数组再转,得到的表格才符合预期。
- JSON 数组里字段不一致,转 CSV 会怎样?
- 工具会汇总所有出现过的字段作为表头,某个对象缺少的字段在它那一行留空。所以字段不齐也能转,只是会出现空单元格。
- JSON 转 CSV 会把我的数据上传吗?
- 不会。转换在你的浏览器本地完成,数据不离开设备,关闭页面即清除,适合处理含手机号、订单等敏感字段的数据。
- 转成 CSV 后能直接导入 Excel 或数据库吗?
- 可以。CSV 是通用的表格交换格式,Excel、WPS 能直接打开,数据库和各类程序也普遍支持按 CSV 导入。需要再转回 JSON 时,用 CSV 转 JSON 即可。
按上面的步骤,几秒就能把 JSON 拍成一张干净的表格——直接去 JSON 转 CSV 试试,数据在本地处理、不上传。要反过来把表格 转成 JSON,用 CSV 转 JSON;JSON 本身格式乱了,先用 JSON 格式化/校验 理顺。
参考资料
延伸阅读
本文由「小鹿tools」整理,更新于 2026-06。如发现信息过期或有误,欢迎反馈。