跳到主要内容
JSON 工具2026-05-07Begin5 分钟阅读

在线 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:选型对照

场景JSONCSV
Web API更常见少见(除非批量导出)
Excel / 表格软件不能直接当表打开原生支持(注意编码)
嵌套数据原生支持需展平或塞进单元格字符串
类型精确性数字/布尔/null 清晰全是文本,靠约定
给人编辑一般更合适

如何使用本站工具(真实选项)

打开 JSON → CSV:

  1. 粘贴 JSON:对象数组最合适;单个对象会被包成一行;原始值数组会变成 index,value 两列。
  2. 可选:
    • 分隔符(默认 ,,可改成 ; 或 \t 等,适配 Excel 地区方言)。
    • 是否包含表头。
    • 是否展平嵌套(默认开启):address.city 这类点号列名。
    • 防护表格公式注入(默认开启):以 =、+、-、@ 开头的单元格会加前导 tab,避免 Excel/WPS 当公式执行。
  3. 转换后复制或下载 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 不是恒等变换:

  1. 嵌套被展平或变成字符串,结构 provably 丢失。
  2. 数字在 CSV 里变成文本;用双向工具读回仍是字符串(该工具不做推断)——这比静默 00123→123 更安全。
  3. null 与空串在 CSV 侧无法区分。
  4. 数组变成 JSON 文本后,回程是字符串字段,不会自动变回数组。
  5. 被公式防护的单元格回读时可能带着前导 tab——ETL 说明里要写清是否剥离。

金丝雀做法:准备一条含嵌套、数组、空值、前导零、中文逗号、以及 =SUM(1) 单元格的样本,在 CI 里固定转换选项做快照对比。

何时该离开浏览器

几千行以内的交互导出是甜点区。一旦需要流式写出、强约束列集、或夜间入库,就改用脚本流水线(jq + csvkit、Spark、或接口原生导出)。在线页仍适合当 形状调试器:贴一段样例,确认展平/分隔符/公式防护,再把同一组选项写进批处理任务。

与 CSV / SQL / YAML 簇互链

目标去向
CSV 严格解析回对象CSV/JSON
分隔符统一CSV/TSV
生成 INSERTCSV → SQL
SQL 排版SQL 格式化
配置 YAMLJSON ↔ 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。更多见首页。