JSON ↔ CSV 转换
把接口返回的 JSON 数组导出成表格,或者把导出的 CSV 还原成 JSON——逗号、引号、换行都按标准转义。
输入
输出
转义规则(RFC 4180)
字段里含有分隔符、双引号或换行时,整个字段用双引号包起来,字段内部的双引号写成两个连续的双引号。反向解析时同样按这个规则读,
所以「张三,男」这种带逗号的值、以及单元格里的多行备注都能原样往返。
两个方向的规则
JSON → CSV:输入一个对象数组,第一行是表头(所有元素键名的并集,按首次出现顺序)。某个元素缺某个键时该格留空。嵌套对象按点号拉平,例如 user.name 是一列;数组或深层对象整体序列化成 JSON 字符串放进一格。输入单个对象时按只有一行处理。
CSV → JSON:第一行当表头。默认会把看起来像数字、布尔值的单元格转成对应类型(1 变数字、true 变布尔),空单元格变成 null。需要「所有值都当字符串」时勾上对应选项——处理身份证号、订单号这类值更安全。列数比表头多的行会用 col4 这类名字补上,少的补 null。
常见坑
- 字段里的换行和逗号必须靠引号保护,不能自己手工拼字符串。少一对引号,整张表就会从那一行起全部错位。
- 值里既有引号又有逗号时,引号要写成
"",整体再包一层引号:"他说""你好"", 再见"。 - Excel 保存 CSV 时用的是本地编码,中文可能变乱码。导入时选 UTF-8,别直接双击打开。
- 转换会丢掉单元格的格式(千分位、日期格式、前导零的显示),因为它只搬运文本。
- JSON 里的日期是字符串,转成 CSV 后 Excel 可能自动把它识别成日期,再导回来格式就变了。介意的话加个前缀或保持为文本列。
- 键名里如果本来就有
.,拉平后会和平铺的键名撞车,这种结构建议先改键名。
常见问题
CSV 字段里本身有逗号或换行怎么办?
把整个字段用双引号包起来,字段内的双引号写成两个连续的引号,换行可以原样保留在引号里。本工具输出时自动做这件事,解析时也按同一规则读,不需要你手工处理。
JSON 里的 null 转成 CSV 是什么?
默认输出成空字段(什么也没有)。也可以选「带引号的空串」或「字面量 null」。要注意:如果数据里既有 null 又有空字符串,都用空字段表示之后就无法区分了,需要区分时请选后两种。
Excel 打开后中文变成乱码怎么办?
Excel 双击打开无 BOM 的 UTF-8 CSV 时会按系统本地编码解释,所以中文会乱。正确做法是用「数据 → 从文本/CSV 导入」并指定 UTF-8,或者用记事本另存为 ANSI 编码再打开。
带前导零的编号为什么不会被转成数字?
识别到前导零(如
007)、超过 2^53 的整数、或带正号的数字时,工具会保留成字符串,避免 007 变成 7、长订单号被截断。实在不确定就勾上「全部当字符串」。嵌套对象和数组会怎么处理?
JSON 转 CSV 时,嵌套对象按点号拉平成多列(
user.name);数组和更深的对象不会被硬拆,而是整体序列化成 JSON 字符串放进一个单元格,保证信息不丢,你可以在表格里再处理。