在线 JSON/CSV 转换器:JSON 数据与表格互转工具
什么是 JSON → CSV
接口、日志、配置常常是 JSON;Excel、BI、业务同事更习惯表格。把 对象数组 压成二维 CSV,是数据链路里最常见的一步。本站 JSON/CSV 转换器面向「从 JSON 出发写 CSV」,转换在浏览器本地完成。
若你手里已经是 CSV、需要严格按 RFC 子集解析回对象数组,请用双向工具 CSV/JSON 转换器——两页分工不同,不要混用预期。
转换示例
JSON:
[
{ "name": "张三", "age": 28, "city": "上海" },
{ "name": "李四", "age": 32, "city": "北京" }
]
CSV(默认逗号 + 表头):
name,age,city
张三,28,上海
李四,32,北京
JSON vs CSV:选型对照
| 场景 | JSON | CSV |
|---|---|---|
| Web API | 更常见 | 少见(除非批量导出) |
| Excel / 表格软件 | 不能直接当表打开 | 原生支持(注意编码) |
| 嵌套数据 | 原生支持 | 需展平或塞进单元格字符串 |
| 类型精确性 | 数字/布尔/null 清晰 | 全是文本,靠约定 |
| 给人编辑 | 一般 | 更合适 |
如何使用本站工具(真实选项)
打开 JSON → CSV:
- 粘贴 JSON:对象数组最合适;单个对象会被包成一行;原始值数组会变成
index,value两列。 - 可选:
- 分隔符(默认
,,可改成;或\t等,适配 Excel 地区方言)。 - 是否包含表头。
- 是否展平嵌套(默认开启):
address.city这类点号列名。 - 防护表格公式注入(默认开启):以
=、+、-、@开头的单元格会加前导 tab,避免 Excel/WPS 当公式执行。
- 分隔符(默认
- 转换后复制或下载
data.csv(text/csv;charset=utf-8)。
没有「自动检测 CSV 再转回 JSON」的按钮——回程请用 CSV/JSON。
实现注记(与页面逻辑对齐)
嵌套对象
- 开启展平时,普通对象递归展平,键用
.连接。 - 关闭展平时,嵌套对象会
JSON.stringify后放进一个单元格(整段带引号转义)。
数组字段
- 数组(含嵌套数组)默认写成 JSON 字符串 单元格,例如
"[\"a\",\"b\"]",而不是用分号拼接。 - 若下游要「多行展开」(每个元素一行),需要先在上游拆行,本工具不做 unnest。
表头与缺省列
- 表头是所有行键的 并集;某行没有的键 → 空单元格。
null/undefined→ 空单元格(不是字面量null)。- 大整数经 lossless 解析时尽量保留原始数字字符串,减轻精度丢失。
引号转义
- 字段含分隔符、双引号或换行时加双引号,内部
"→""。 - 公式注入:开启 防护表格公式注入(默认)时,以
=、+、-、@、tab、CR 开头的值会先加 tab 再按需加引号,与双向工具 CSV/JSON 的写路径一致。只有在你明确需要公式单元格、且数据可信时,才关掉该选项。
空行、稀疏对象与列序
- 表头顺序是跨行 首次出现 的键并集,不是字母排序——下游若按列下标读,应准备金丝雀样本固定选项。
- 某行缺键 → 空单元格,不会删掉其他行的该列。
- 空数组输入得到空字符串(不会只出表头);需要表头模板时至少塞一个对象。
大文件边界
- 整份 JSON 先解析再物化全部行,内存随行数与嵌套深度上升。
- 适合联调与中等导出;百万行应在服务端流式写出。
RFC 4180 与 Excel 方言(写侧视角)
写 CSV 时比读更可控,但仍要选对方言:
- 分隔符:北美逗号 vs 欧洲分号——用本页分隔符选项对齐接收方 Excel。
- BOM:部分 Windows Excel 需要 UTF-8 BOM 才能正确显示中文;本页下载未强制加 BOM。若打开乱码,可在文件头手动加
EF BB BF,或用 Excel「数据 → 从文本」指定 UTF-8。 - 换行:输出使用
\n;Excel 一般可接受。 - 公式注入:见上文;表格软件会把
=cmd|...当公式。
往返与类型边界
JSON → CSV → JSON 不是恒等变换:
- 嵌套被展平或变成字符串,结构 provably 丢失。
- 数字在 CSV 里变成文本;用双向工具读回仍是字符串(该工具不做推断)——这比静默
00123→123更安全。 null与空串在 CSV 侧无法区分。- 数组变成 JSON 文本后,回程是字符串字段,不会自动变回数组。
- 被公式防护的单元格回读时可能带着前导 tab——ETL 说明里要写清是否剥离。
金丝雀做法:准备一条含嵌套、数组、空值、前导零、中文逗号、以及 =SUM(1) 单元格的样本,在 CI 里固定转换选项做快照对比。
何时该离开浏览器
几千行以内的交互导出是甜点区。一旦需要流式写出、强约束列集、或夜间入库,就改用脚本流水线(jq + csvkit、Spark、或接口原生导出)。在线页仍适合当 形状调试器:贴一段样例,确认展平/分隔符/公式防护,再把同一组选项写进批处理任务。
与 CSV / SQL / YAML 簇互链
| 目标 | 去向 |
|---|---|
| CSV 严格解析回对象 | CSV/JSON |
| 分隔符统一 | CSV/TSV |
| 生成 INSERT | CSV → SQL |
| SQL 排版 | SQL 格式化 |
| 配置 YAML | JSON ↔ YAML |
| 博文 | CSV/JSON 指南、CSV→SQL、YAML/JSON |
FAQ
嵌套对象怎么进 CSV?
打开「展平嵌套」得到 address.city 列;或关闭展平,让整个对象变成单元格内的 JSON 字符串。两种都是合法策略,取决于下游是人读表还是程序再解析。
数组列为什么是 [...] 而不是 a;b?
本站选择 JSON 字符串,避免数组元素本身含分号时二次歧义。若必须分号拼接,先在上游 join 再转换。
为什么没有 CSV → JSON?
本页专做 JSON 出发的导出。回程解析(引号、列数校验、公式防护)在 CSV/JSON。
Web API 场景必须用 JSON 吗?
接口交换几乎都用 JSON;批量给人下载时再导出 CSV。两者互补,不是二选一。
本文出自 ToolVault 工具匣。相关工具:JSON→CSV、CSV/JSON、CSV→SQL、YAML↔JSON。更多见首页。
相关工具
相关文章
JSON 大整数精度陷阱:雪花 ID 被静默改写时怎么查
超过 2^53-1 的 JSON 数字经 JSON.parse 会尾部舍入。对照劣质格式化与无损路径,并互链 JWT/Base64 与站内 JSON 工具。
JSON 解析报错 Unexpected token?5 种常见原因和修复方法
JSON 解析报错 Unexpected token?本文总结 5 种最常见的 json 格式错误原因:尾逗号、单引号、未转义字符、BOM 头、注释,逐一给出修复方法和代码示例。
JSON 排错完全手册:从报错信息到修复(按症状速查)
JSON 报错看不懂?本手册按「症状 → 原因 → 修复」组织,覆盖语法错误、中文转义、编码乱码、Schema 校验失败四类高频问题,附诊断决策树与通用排查流程。