JSON 轉 CSV

將 JSON 物件陣列轉換為 CSV 格式。


把 JSON 轉換為 CSV 是什麼

從 API 取得的 JSON 是以機器處理為前提的格式,直接以試算表軟體開啟並不可行。本工具會讀取 JSON 的物件陣列,將鍵作為標題列、各元素作為一列,轉換成 CSV。轉換後即成為可在 Excel 或 Google 試算表中彙總、排序的形式。

這裡有兩項前提。其一是對象必須是物件的陣列;單一物件請以陣列包起來後再輸入。其二是深層巢狀的處理。若值本身是物件或陣列,並不會展開為多個欄位,而是以 JSON 字串原樣填入儲存格。事先加以扁平化會更容易處理。

JSON→CSV 轉換的步驟

  1. 貼上 JSON 將物件的陣列貼入輸入欄。直接複製 API 的回應亦無妨。
  2. 確認轉換結果 鍵會成為標題列,每個元素排成一列。請確認是否出現了預期的欄位。
  3. 下載 CSV 字元編碼為 UTF-8。若以 Excel 開啟時出現亂碼,請在匯入時指定 UTF-8。

用好本工具的小技巧

  • 輸入必須是 JSON 物件陣列格式([{}, {}, ...]),不支援單個物件。
  • 需要在 Excel 或 Google 表格中處理 REST API 響應資料時非常方便。
  • 深層巢狀物件或陣列的值不會被展平,將以 JSON字串(如 {"a":1})形式輸出。
  • 下載的 CSV 檔案編碼為 UTF-8。若在 Excel 中出現亂碼,請以 UTF-8(帶 BOM)方式開啟。

JSON→CSV 轉換的實用場景

彙總 API 的回應

將取得的資料轉成 CSV,即可直接以試算表的函數或樞紐分析表進行彙總。

分享給非工程人員

對於直接給 JSON 也讀不懂的對象,可以表格形式交付。更便於請對方確認或修正。

作為資料遷移的中間格式

在將資料移往支援 CSV 匯入的工具時,可用於轉換。許多服務都支援 CSV 匯入。

確認筆數與缺漏

做成表格後,列數與空欄一目了然。適合用來檢查是否湊齊了預期的筆數。

JSON·CSV 的術語

物件陣列
[{...}, {...}] 形式排列多個物件的結構。由於對應表格的各列,因此可轉換為 CSV。
鍵(Key)
在物件內指向值的名稱。在 CSV 中會成為標題列的欄位名。
巢狀
值之中又含有物件或陣列的嵌套結構。是無法順利收進表格形式的部分。
扁平化
指將巢狀展開、改為單一層級。事先處理後即可作為 CSV 的欄位來對待。
BOM
加在檔案開頭的字元編碼標記。用於希望讓 Excel 正確開啟 UTF-8 的 CSV 時。

常見問題

不支援。本工具僅接受 JSON 物件陣列[{}, {}])。若您只有單個物件,請先將其包裹在陣列中(例如:[{}])。

深層巢狀的值不會被展平,將以 JSON 字串(如物件會輸出為 {"a":1})的形式輸出。如需將這些值放入獨立的列,請在轉換前先展平 JSON 結構。

下載的 CSV 檔案使用 UTF-8 編碼。在 Excel 中請通過「資料」→「從文本/CSV」匯入,並選擇 UTF-8(帶 BOM)編碼。
工具君

閒話 ― JSON 的誕生:是"發現"而非"發明"

JSON(JavaScript Object Notation)由 Douglas Crockford 於 2001 年前後整理成型。他曾表示,自己並非發明了 JSON,而是發現了它——因為他只是將 JavaScript 本就存在的物件字面量語法標準化為資料交換格式。

從 2006 年前後,隨著 Ajax(非同步通訊)的普及,JSON 迅速流行。與 XML 冗長的語法相比,簡潔的 JSON 深受開發者青睞。儘管早期曾有"JSON 無法取代 XML"的質疑,如今 JSON 已成為 REST API 的標準資料格式。

一個有趣的花絮:Crockford 在 JSON 規範的版權宣告中加入了"The Software shall be used for Good, not Evil."這一條款,導致 Google、IBM 等大公司的法務部門因無法判定"善惡"而要求獲得正式授權,引發了一場小小的風波。