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,也就是从“给程序读”转成“给人看、给表格用”。

对比项JSONCSV
结构支持嵌套、层级扁平二维表
常见用途接口传输、配置、程序间交换表格查看、统计、导入数据库
打开方式文本编辑器、代码Excel/WPS 直接打开
人读友好度层级深时不易读一目了然

什么时候需要转

常见的几种情况,看到就知道该转 CSV 了:

  • 接口返回 JSON,要给同事在 Excel 里看:转 CSV。
  • 要把一批数据导入数据库或 BI 工具:转 CSV。
  • 要排序、筛选、求和统计:转 CSV 后用表格软件处理。
  • 数据本身是规整的对象数组:很适合转 CSV。
  • 数据层级很深、字段差异大:转 CSV 前先想好怎么扁平化。
  • 要再变回程序好处理的格式:用 CSV 转 JSON 转回去。

怎么把 JSON 转成 CSV

三步就能完成:粘贴 JSON、确认结构、下载 CSV。JSON 要是“对象数组”结构,工具才能正确对齐成表格。

操作步骤

  1. 打开 JSON 转 CSV,把 JSON 粘贴进去或导入文件。
  2. 确认数据是对象数组,例如 [{"name":"张三","age":20}, ...],工具会自动把 name、age 识别为表头。
  3. 按需设置:嵌套字段是否扁平化、分隔符(逗号/分号/制表符)、是否带 BOM。
  4. 点转换,预览表格无误后下载 CSV。

转出来用 Excel 打开不乱码

导出时保留默认的 UTF-8 BOM,Excel 打开中文就不会变乱码。CSV 本身不记录编码,Excel 在没有 BOM 时容易按 GBK 去猜,中文便乱。带上 BOM 等于明确告诉 Excel“这是 UTF-8”。实测一份 5000 行、十几个字段的对象数组 JSON,在浏览器本地转成 CSV 基本是秒级完成,真正要核对的是嵌套字段有没有按预期拍平。

嵌套 JSON、数组怎么扁平化

CSV 是二维表、没有层级,嵌套的 JSON 需要先“拍平”才能放进去。扁平化就是把内层结构按规则展开成列。

嵌套对象:用点号拼列名

{"user":{"name":"张三","city":"北京"}} 这种, 扁平化后会得到 user.nameuser.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。如发现信息过期或有误,欢迎反馈。