什麼是 JSON 轉 CSV?
JSON(JavaScript Object Notation,RFC 8259)是一種用於結構化資料的樹狀文字格式;CSV(逗號分隔值,RFC 4180)則是扁平的表格化文字格式。將 JSON 轉換為 CSV 會把這棵樹展平成列與欄,讓一份始於 API 回應的資料集無需逐列重打就能在試算表中開啟。
JSON 轉 CSV 是如何運作的?
每次轉換都在你的瀏覽器本機執行。主要步驟如下:
JSON.parse驗證輸入並確認其為頂層記錄陣列。若括號、逗號或帶引號的鍵不符,會發出清楚的錯誤提示。- 輸出器從你的記錄中推導標題欄位 — 要麼是所有鍵的聯集,要麼只取第一筆紀錄的鍵,由切換開關決定。
- 巢狀物件被扁平化為點號鍵(
user.id、user.city),或序列化為單一 JSON 儲存格,由你選擇。物件內的陣列在兩種模式下都會被 JSON 字串化。 - 每個儲存格依 RFC 4180 進行跳脫:任何包含分隔符、雙引號或換行符的值都會被引號包住,內部引號被加倍。列以
\r\n行尾連接。 - CSV 出現在唯讀輸出框中,下載連結基於帶有 MIME 類型
text/csv;charset=utf-8的Blob建立,方便一鍵存檔。
為什麼用此工具將 JSON 轉換為 CSV?
- 隱私:每次解析、扁平化與寫入都在你的瀏覽器中完成,資料絕不傳到我們的伺服器。
- 正確性:輸出器遵循 RFC 4180。像
Bob, Jr.這樣的值會得到"Bob, Jr."— 一個帶引號的儲存格,而非兩欄 — 嵌入的換行符或引號在轉換後保持完整。 - 試算表就緒:輸出可以直接貼入 Excel 或 Google Sheets,標題欄位已從你的鍵中推導出來,資料無需手動整理即可使用。
- 彈性:可將巢狀物件扁平化為點號鍵或序列化為單一儲存格,可為非逗號 CSV 方言選擇任意分隔符,還可選擇標題來自所有鍵還是僅第一筆紀錄。
JSON 轉 CSV 的常見應用情境有哪些?
在資料工作與工具鏈中,將 JSON 扁平化為 CSV 隨處可見:
- 資料匯出:把 API 回應轉換成 CSV 檔,讓財務、營運或產品團隊免寫程式就能用 Excel 或 Google Sheets 開啟。
- 報表:將 JSON 查詢結果放入試算表,用於樞紐分析表、圖表或快速欄公式。直接對原始 JSON 做這類工作非常痛苦。
- 試算表審查:把巢狀 JSON 設定(設定值、功能旗標、A/B 變體)扁平化為 CSV,讓非技術評審可逐儲存格閱讀和編輯。
JSON 轉 CSV 範例長什麼樣子?
貼上 [{"name":"Alice","age":30},{"name":"Bob, Jr.","age":25}],保留逗號分隔符,按下轉換。你會得到三列:name,age 標題列、Alice,30 資料列以及 "Bob, Jr.",25 列。那個嵌入的逗號正是讓樸素 join 出錯的地方 — 這裡它觸發了 RFC 4180 的引號包裹,使儲存格保持完整。
這個 JSON 轉 CSV 工具完全在我的瀏覽器中運作嗎?
是的。每次解析、扁平化與寫入都在你的瀏覽器分頁中以 JavaScript 在本機執行。本工具完全不呼叫 fetch、XMLHttpRequest 或 navigator.sendBeacon — 你的 JSON 內容絕不傳到我們的伺服器、第三方轉換服務或任何分析管線。頁面載入完成後也可離線使用,因為它就是個沒有執行期 API 相依的靜態 HTML/CSS/JS 套件。
本工具可處理的最大輸入是多大?
工具會在記憶體中緩衝整份輸入並於主執行緒同步處理,因此實際上限取決於裝置效能。在現代筆電上,約 10 MB 的 JSON 陣列(大約 10 萬筆典型紀錄)可以在沒有明顯卡頓的情況下扁平化為 CSV。超出此規模 UI 可能會停滯。基於 Web Worker 與分塊寫入器的串流轉換已列入後續規劃 — 在此之前,請先把超大資料集切分後再貼入。
輸出器如何處理含有逗號、引號或換行符的值?
依 RFC 4180 處理。任何包含當前分隔符、雙引號、CR 或 LF 的值都會被雙引號包住,內部引號被加倍。所以像 Bob, Jr. 這樣的名字會變成單一儲存格 "Bob, Jr." 而不是分成兩欄,多行描述也會保留在一個儲存格中。這正是樸素的 join(',') 會出錯的地方。
轉換成 CSV 時巢狀 JSON 物件會發生什麼?
巢狀物件依 巢狀物件 開關決定處理方式。扁平化 模式(預設)會將鍵以點號串接 — {"user":{"id":1,"city":"Paris"}} 會變成 user.id 與 user.city 兩欄。序列化 模式會把巢狀物件序列化為單一 JSON 儲存格值,並完整保留 RFC 4180 的引號跳脫,使往返轉換得以還原結構。物件內的陣列在兩種模式下都會被 JSON 字串化。
CSV 輸出可以使用哪些分隔符?
四種:逗號(,,RFC 4180 預設)、分號(;,歐洲常見)、定位字元(\t,TSV 方言)以及管道符(|)。選擇你的下游工具期望的那一種。輸出器會跳脫任何包含所選分隔符的儲存格,因此選擇不會損壞任何值。
這個 JSON 轉 CSV 工具將你的陣列扁平化,輸出符合 RFC 4180 的結果,可直接貼入試算表、報告或程式碼審查中 — 全程不上傳任何位元組。需要反向?CSV 轉 JSON 工具可以解析另一個方向。