UltKit

JSON 轉 CSV

把 API 回應、App 匯出資料和記錄檔從 JSON 轉成列與欄。上傳 .json、.jsonl 或 .ndjson 檔案,下載每筆資料一行的 CSV。

資料轉換器

或將CSV, TSV, TXT … 檔案拖曳到這裡 ·

每個檔案最大 95 MB· 最多 20 個檔案· 30 分鐘後刪除

輸出

檔案會在我們的伺服器上處理,並於 30 分鐘後刪除。

使用方式

  1. 1

    上傳 JSON 資料

    加入內含物件陣列的檔案,或每行一個物件的 JSON Lines 檔案。最多 20 個檔案,每個不超過 95 MB。

  2. 2

    檢查 CSV 設定

    文字編碼預設為含 BOM 的 UTF-8,讓 Windows 版 Excel 能正確顯示重音符號。如果你的 Excel 需要分號,請將分隔符號設為分號;若匯入工具要求嚴格格式,可開啟每個值都加引號。

  3. 3

    轉換並下載

    按下 轉換為 CSV。標題列會列出所有記錄中出現過的鍵名;你可以開啟檔案,或匯入任何支援 CSV 的地方。

JSON 轉 CSV 會把一串記錄變成表格:每個物件成為一列,每個鍵名成為一欄,巢狀欄位則展開成各自獨立的欄。

為什麼要把 JSON 轉成 CSV

JSON 是網路服務彼此溝通的方式。訂單系統、金流服務、分析 API 和表單產生器都以 JSON 輸出資料,MongoDB、Firebase 等 NoSQL 資料庫也以類似 JSON 的形式儲存文件。這對程式很理想,對其他人卻很困擾,因為用文字編輯器開啟 5 MB 的 JSON 檔案,只會看到一大片大括號。

CSV 則是相反的取捨。它無法表達巢狀結構或型別,但所有試算表、BI 工具、CRM 匯入功能和資料庫載入工具都能讀取。營運主管靠轉換把訂單清單放進樞紐分析表,資料分析師靠它把 API 資料移入 SQL 資料表,客服主管也靠它把篩選後的匯出檔分享給同事。如果資料來源是 XML,XML 轉 CSV 會對標籤做同樣的展平。

巢狀 JSON 轉 CSV:展開方式說明

展平正規化 · 解除巢狀
把巢狀物件寫成同一列的額外欄位,欄名取自每個值的路徑,因此 {"customer":{"city":"Austin"}} 會變成一個名為 customer.city、內容為 Austin 的欄。
API 回應中的兩筆訂單,展平後的結果
[{"id":5012,"total":42.9,"paid":true,"customer":{"name":"Ada Okafor","city":"Austin"}},
 {"id":5013,"total":18,"paid":false,"customer":{"name":"Lin Wei","city":"Toronto"}}]

id,total,paid,customer.name,customer.city
5012,42.9,true,Ada Okafor,Austin
5013,18,false,Lin Wei,Toronto

JSON 變體與表格輸出格式

from ↓ · to →CSVTSVXLSX
JSONJSON to CSV: yesJSON to TSV: yesJSON to XLSX: yes
JSONLJSONL to CSV: yesJSONL to TSV: yesJSONL to XLSX: yes
NDJSONNDJSON to CSV: yesNDJSON to TSV: yesNDJSON to XLSX: yes
YAMLYAML to CSV: yesYAML to TSV: yesYAML to XLSX: yes
XMLXML to CSV: yesXML to TSV: yesXML to XLSX: yes
supported not offeredJSON Lines 和 NDJSON 每行存放一個 JSON 物件,是 BigQuery 和許多記錄工具使用的匯出格式。

記錄內的清單是扁平列無法妥善容納的部分。一筆有五個明細項目的訂單,其實是兩張表:訂單和項目。如果這些清單很重要,請把該陣列擷取成獨立的 JSON 檔案另外轉換,這樣每個明細項目都會有自己的一列,旁邊附上訂單編號。

JSON 與 CSV 格式小知識

JSON

JavaScript 物件表示法

JSON 是用於結構化資料的輕量文字格式,由 Douglas Crockford 在 2000 年代初期推廣,並標準化為 RFC 8259 和 ECMA-404。它以簡單易讀的語法表示物件、陣列、字串、數字、布林值和 null。幾乎所有程式語言都把它當作網頁 API、設定檔和應用程式間資料交換的預設格式。它沒有內建註解、日期或結構描述,大型巢狀檔案不用檢視器很難閱讀。

壓縮方式
–
透明度
–
動畫
–
推出年份
2001 · Douglas Crockford
JSON 轉檔工具

CSV

逗號分隔值

CSV 是一種純文字的表格格式,每一行是一列資料,欄位之間以逗號分隔。它從電腦發展初期沿用至今,並記載於 RFC 4180,不過許多變體會改用分號或定位字元,文字編碼也各不相同。幾乎所有試算表、資料庫和分析工具都能匯入與匯出,因此成為系統之間傳輸資料的預設格式。CSV 只儲存數值,不包含公式、格式、多個工作表或資料類型。

壓縮方式
–
透明度
–
動畫
–
推出年份
–
CSV 轉檔工具

從 API 或應用程式取得的資料,需要由習慣使用試算表而非程式碼的人來分析、分享或匯入時,就會把 JSON 轉成 CSV。

JSON 轉 CSV 常見問題

哪種 JSON 結構能順利轉成 CSV?

由多數鍵名相同的物件組成的陣列,例如 [{"id":1,"name":"Ada"},{"id":2,"name":"Lin"}]。每個物件會成為一列,每個鍵名成為一欄。最上層是單一物件、記錄放在某個屬性內也可以,只要記錄本身是清單即可。

部分資料缺少其他資料有的鍵怎麼辦?

標題列是所有鍵名的聯集,因此只出現在部分記錄中的欄位仍會有自己的一欄,沒有該欄位的記錄則留空。這在 API 資料中很常見,因為選填欄位通常會直接省略。

true、false 和 null 會怎麼寫入?

CSV 沒有資料型別,只有文字。布林值會寫成 true 和 false 這兩個字,數字寫成數字,null 則是空白儲存格。如果匯入工具需要 1 和 0 而不是 true 和 false,請在轉換後用試算表取代。

為什麼 Excel 顯示亂碼而不是重音字元?

除非檔案開頭有位元組順序標記(BOM),否則 Windows 版 Excel 會以區域代碼頁讀取 CSV 檔案,因此本頁會寫出含 BOM 的 UTF-8。Linux 工具或資料處理流程有時偏好不含 BOM 的 UTF-8,這時請切換文字編碼。

JSON 資料該轉成 CSV 還是 Excel 檔?

如果下一步是匯入其他系統、載入資料庫或交給腳本處理,選 CSV。如果要給人閱讀和編輯,選活頁簿,因為 JSON 轉 Excel 會保留型別,也能避免 Excel 開啟時重新猜測郵遞區號之類的欄位。

能從 CSV 還原原本的 JSON 嗎?

只能還原成扁平版本。陣列與深層巢狀已被展開成欄或文字,數字與字串的型別也不再記錄,所以來回轉換只會得到扁平的物件。如果之後需要原本的結構,請保留來源 JSON。