將 JSON 轉為 CSV:把物件陣列扁平化
JSON 物件陣列會對應到 CSV 表格 — 每個物件一列,欄位來自所有鍵的聯集。真正的難點在於引號處理與巢狀值的處理。
物件陣列的形狀
CSV 是平面表格,所以能乾淨地轉換的 JSON 是物件陣列:每個物件對應一列,每個鍵對應一欄。
組出表頭
用所有物件鍵的聯集作為表頭,而不是只取第一個物件的鍵,這樣多鍵或少鍵的記錄都能對齊。缺少的儲存格留白即可。
引號規則
任何含有逗號、雙引號或換行的值都必須用雙引號包起來,內部的雙引號要寫成兩個,否則欄位會錯位。
巢狀值
物件與陣列沒有扁平的 CSV 形式,所以可以在儲存格裡寫成 JSON 文字(可逆),也可以攤平成 address.city 這樣帶點的欄位。
表頭順序與穩定性
對鍵的聯集排序,或把順序固定成第一筆紀錄的鍵,並把多出來的鍵追加在後面。穩定的表頭順序讓多次匯出之間的 diff 更有用,避免每次重排欄位。
日期與數字格式
試算表會很積極地重新詮釋數值:較長的數字 ID 會失去精度,ISO 日期會被改格式,前導零會消失。如果某個值必須原樣往返,要加引號;貼到 Excel 時再在前面加一個英文撇號。
與 Excel/Google Sheets 的相容性
用 CRLF 換行與 BOM(帶 byte-order mark 的 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 物件轉換工具