悦省yueser.com

← 全部指南

JSON 转 CSV 指南:扁平数据才适合进表格

JSON 能嵌套,CSV 不能。转换之前先问一句:这份数据是不是「一行一条、字段都一样」?如果不是,转过去一定丢东西。

打开工具:JSON 转 CSV

把接口数据交给不用代码的人

运营想看订单列表、财务要核对一批记录、把监控数据丢进 Excel 做透视表——这些都要求 CSV。JSON 直接发过去,对方只能看到一坨括号,转换是最省事的桥。

适合的数据形状很明确:一个数组,每个元素是对象,字段大致相同。字段差异越大,转出来的表格空洞越多,这时候该先讨论数据结构,而不是硬转;否则导出一次,就要在表格里补半天空值。

表头、缺失字段与转义

表头取第一个对象的键,顺序也照它来。后面的对象如果多出键,这些字段不会出现在 CSV 里,等于被丢掉;缺少的键则输出空值。所以第一行最好包含全部字段,或者先做一次字段并集。

值里出现逗号、双引号或换行时,工具会用双引号包住整个字段,并把内部的双引号写成两个。这一步不能省:一个逗号就能让整列错位。表头本身如果含逗号,工具不会特殊处理,建议提前改名。

边界:嵌套与 Excel 的坑

嵌套对象会变成 [object Object],数组会被逗号拼成一串文本,层级信息在 CSV 里无处安放。需要保留结构,就拆成多张表用 ID 关联,或者干脆用 JSON 交付。

Excel 直接双击打开 UTF-8 的 CSV,中文可能乱码,长数字会变成科学计数法,以 0 开头的编号会丢前导零。正确做法是用「数据 → 从文本/CSV」导入并指定 UTF-8,或让程序生成带 BOM 的文件。

常见问题

为什么出现了 [object Object]?

因为该字段是对象或嵌套结构,CSV 单元格只能放文本,JavaScript 把它转成了这个字符串。先拍平字段(例如 user.name),再导出。

中文在 Excel 里为什么乱码?

Excel 双击打开时按本地编码猜,容易把 UTF-8 认错。请用「数据 → 从文本/CSV」导入并选 UTF-8,或者生成带 BOM 的 CSV。

表头顺序能调整吗?

工具按第一个对象的键顺序生成表头。想固定顺序,就先构造一个包含全部字段、顺序正确的对象放在数组第一位,或转换后在表格软件里调整。

相关工具:JSON 转 CSV