首页文本与开发 › JSON 转 CSV / CSV 转 JSON

JSON 转 CSV / CSV 转 JSON

JSON 数组一键转成可用 Excel 打开的 CSV,或把 CSV 表格转回 JSON 对象数组,支持嵌套展平与多种分隔符。

两种格式的差异与转换规则

JSON 是树状结构,允许嵌套对象、数组和 null;CSV 是二维表格,只有行和列。转换的核心是把树压平成表。本工具的规则是:数组里每个对象是一行;所有对象的键取并集作为表头,因此某些对象缺少的字段会留空;嵌套对象展开一层,用点号拼接列名,例如 dept 里的 name 变成列 dept.name;数组类型的值直接序列化成 JSON 文本放进单元格,避免列数不固定。

CSV 的转义遵循 RFC 4180:字段中出现分隔符、双引号或换行时,整个字段用双引号包起来,字段内部的双引号写成两个双引号。示例里的“王五, 小五”含逗号,输出时会自动加引号。反向解析时按同样规则处理,所以引号内的逗号不会被误切。表头行的名称直接作为 JSON 的键,重复的表头后者会覆盖前者,建议先改名。

中文乱码与数字丢失的处理

最常见的问题是中文 CSV 在 Excel 里变成乱码。原因是 Excel 双击打开时按系统默认的 GBK 解码,而本工具输出的是 UTF-8。解决办法有两个:在 Excel 里用“数据 → 从文本/CSV”导入,编码选 UTF-8;或者把内容保存成文件时在开头加上 BOM 字节。用 WPS、Numbers 或 Google 表格导入通常能自动识别,不会乱码。

第二个坑是数字。CSV 没有类型,长数字串如身份证号、手机号、订单号在 Excel 中会被当成数值,显示成科学计数法或丢掉前导零。导入时把这些列的格式设为“文本”即可。本工具在 CSV 转 JSON 时提供了“纯数字转数值”的开关,并且只对 16 位以内的数字生效,超过这个长度保持字符串,避免超出 JavaScript 安全整数范围而丢精度。所有转换都在浏览器本地完成,数据不会上传,可以放心处理业务表格。

常见问题

嵌套很深的 JSON 怎么办?

本工具只展平一层,更深的层级会序列化成 JSON 文本放在单元格里。需要完全展平建议先在代码里整理结构,或改用 jq 等命令行工具。

转出来的 CSV 用 Excel 打开是乱码?

请用 Excel 的“数据 → 从文本/CSV”导入并选择 UTF-8 编码,不要直接双击打开;也可以用 WPS 或 Google 表格导入。

CSV 里字段带逗号会不会出错?

不会。含逗号、引号或换行的字段会按 RFC 4180 用双引号包裹并把内部引号翻倍,反向解析时同样能正确还原。

可以处理多大的文件?

几万行、几 MB 的文本在浏览器中一般一两秒完成。更大的数据建议用 Python 的 pandas 或命令行工具处理。