将 JSON 转为 CSV:把对象数组扁平化
JSON 对象数组映射为 CSV 表格 — 每个对象一行,列来自所有键的并集。真正的难点在于引用规则与嵌套值的处理。
对象数组形状
CSV 是平面表格,所以能干净地转换的 JSON 是对象数组:每个对象成为一行,每个键成为一列。
构造表头
用所有对象键的并集作为表头,而不是只取第一个对象的键,这样多键或少键的记录都能对齐。缺失的单元格留空。
引用规则
任何包含逗号、双引号或换行的值都必须用双引号包起来,并把内部的双引号写成两个,否则列会错位。
嵌套值
对象和数组没有扁平的 CSV 形式,因此可以在单元格里写成 JSON 文本(可逆),也可以拆成 address.city 这样的点号列。
表头顺序与稳定性
对键的并集排序,或者把顺序固定为第一条记录的键,再把多出来的键追加在后面。稳定的表头顺序让多次导出之间的 diff 有意义,避免每次重排列。
日期与数字格式
表格软件会激进地重新解释数值:长数字 ID 会丢精度,ISO 日期会被改格式,前导零会消失。如果一个值必须原样往返,要给它加引号;粘贴到 Excel 时再在前面加一个英文撇号。
Excel 与 Google Sheets 兼容性
用 CRLF 行尾和 BOM(带字节序标记的 UTF-8)让 Excel 识别 Unicode。对 Google Sheets,BOM 是可选的,但逗号作分隔符和双引号转义的规则仍然适用。
从 CSV 转回 JSON
按引号感知的方式拆分行(不要直接按逗号 split),把第一行当作字段名,并尝试按列推断数字、布尔、ISO 日期。本工具的往返过程默认把字符串保留为字符串,除非整列都是数字。
常见陷阱
下面这些问题会让大多数 CSV 导出崩溃。
- 字符串值里未转义的逗号
- 单元格里出现换行却 没有用引号包裹
- 编码混用(UTF-8 与 Latin-1)导致乱码
- 大整数(如 ID)被表格软件悄悄截断
- 布尔值被存成字符串 "true"/"false" 而不是 TRUE/FALSE
JSON 修复指南
主题中心
- JSON Parse Errors: Read the Message, Jump to the Fix
- Fix Invalid JSON: From 'What's Wrong' to a Clean File
- JSON Formatter, Validator, Viewer: Pick the Right Tool
- Repair LLM JSON Output: Handling Almost-JSON from AI
- Privacy: JSON Tools That Don't Leave Your Browser
- JSON Interop: YAML, CSV, XML, JWT, Schema
具体指南
- 如何解码 Base64 字符串(以及 JWT Payload)
- URL 编码:百分号编码查询参数与路径
- 将 YAML 转为 JSON(并避免缩进错误)
- 将 JSON 转为 XML:根元素、属性与数组
- 将 JSON 转义为字符串字面量(并解码双重编码的 JSON)
- 修复 JSON 中的尾随逗号
- 修复 JSON 中的单引号
- 修复 JSON 中未加引号的键
- 修复 LLM 输出的 JSON
- 修复 JSON 解析错误:Expected Property Name
- JSON 与 JavaScript 对象字面量的区别
- 在发起 API 请求前校验 JSON
- JSON 格式化器 vs JSON 修复工具
- 修复 JSON Unexpected Token 错误
- JSON 转 JavaScript 对象转换器