§

貼上你想轉換為 CSV 的 JSON 陣列。

分隔符
標題欄位
首列作為標題
巢狀物件
型別推斷
§

Output

csv

在台灣的資料工程現場,將 JSON 轉換為 CSV 幾乎天天上演:data.gov.tw 上的政府開放資料、行政院主計總處(DGBAS)發布的人力資源月報與物價指數時序,大多以 CSV 形式批次下載,再由 ETL 改寫成 JSON 送進 BigQuery 或 Snowflake;證交所(TWSE)與櫃買中心(TPEx)的盤後資訊、上市櫃公司公開資訊觀測站匯出資料也是 CSV 為主,常被金融科技團隊轉為 JSON 灌入 Kafka;中央銀行的匯率與利率時序、財政部電子發票 API 摘錄同樣以 CSV 發布。本工具於瀏覽器內完成轉換,財務、健保與戶政相關資料絕不離開使用者裝置。

什麼是 JSON 轉 CSV?

JSON(JavaScript Object Notation,RFC 8259)是一種用於結構化資料的樹狀文字格式;CSV(逗號分隔值,RFC 4180)則是扁平的表格化文字格式。將 JSON 轉換為 CSV 會把這棵樹展平成列與欄,讓一份始於 API 回應的資料集無需逐列重打就能在試算表中開啟。

JSON 轉 CSV 是如何運作的?

每次轉換都在你的瀏覽器本機執行。主要步驟如下:

  1. JSON.parse 驗證輸入並確認其為頂層記錄陣列。若括號、逗號或帶引號的鍵不符,會發出清楚的錯誤提示。
  2. 輸出器從你的記錄中推導標題欄位 — 要麼是所有鍵的聯集,要麼只取第一筆紀錄的鍵,由切換開關決定。
  3. 巢狀物件被扁平化為點號鍵(user.iduser.city),或序列化為單一 JSON 儲存格,由你選擇。物件內的陣列在兩種模式下都會被 JSON 字串化。
  4. 每個儲存格依 RFC 4180 進行跳脫:任何包含分隔符、雙引號或換行符的值都會被引號包住,內部引號被加倍。列以 \r\n 行尾連接。
  5. CSV 出現在唯讀輸出框中,下載連結基於帶有 MIME 類型 text/csv;charset=utf-8Blob 建立,方便一鍵存檔。

為什麼用此工具將 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 在本機執行。本工具完全不呼叫 fetchXMLHttpRequestnavigator.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.iduser.city 兩欄。序列化 模式會把巢狀物件序列化為單一 JSON 儲存格值,並完整保留 RFC 4180 的引號跳脫,使往返轉換得以還原結構。物件內的陣列在兩種模式下都會被 JSON 字串化。

CSV 輸出可以使用哪些分隔符?

四種:逗號(,,RFC 4180 預設)、分號(;,歐洲常見)、定位字元(\t,TSV 方言)以及管道符(|)。選擇你的下游工具期望的那一種。輸出器會跳脫任何包含所選分隔符的儲存格,因此選擇不會損壞任何值。

這個 JSON 轉 CSV 工具將你的陣列扁平化,輸出符合 RFC 4180 的結果,可直接貼入試算表、報告或程式碼審查中 — 全程不上傳任何位元組。需要反向?CSV 轉 JSON 工具可以解析另一個方向。