DevToolPal
繁

CSV 與 JSON 互轉

把 CSV 轉成 JSON,或把 JSON 轉回 CSV。自動偵測分隔符號,支援標題列與資料型別偵測。

本機處理,不會上傳

選項

方向

輸入

0 字元 · 0 B

輸出

0 字元 · 0 B

功能簡介

這個轉換器可以把 CSV(逗號分隔值)轉成 JSON,也能把 JSON 轉回 CSV。試算表、資料庫和分析工具匯出的是 CSV;API、JavaScript 程式碼和設定檔需要的則是 JSON。貼上任一種格式,另一種格式就會立刻出現。

解析器遵循 CSV 標準 RFC 4180:欄位可以用雙引號包起來,引號欄位中的引號寫成兩個(""),引號欄位裡也可以包含逗號和換行。Windows(CRLF)和 Unix(LF)換行都能處理,Excel 匯出時帶的 UTF-8 位元組順序標記(BOM)也會自動移除。

使用方法

  1. 把 CSV 貼到 輸入 框,或把 .csv、.tsv 檔案拖進去,也可以點 範例。
  2. 分隔符號 保持「自動偵測」,或選擇逗號、分號(歐洲版 Excel 匯出常見)、Tab 或直線。
  3. 開啟 第一列是標題列 時,會得到以欄名為鍵的物件陣列;關閉後會得到陣列的陣列。
  4. 偵測數字與布林值 會把 42 變成數字、true 變成布林值。關閉後每個儲存格都保留為文字。
  5. 把 方向 切換成 JSON → CSV 即可反向轉換。複製或下載結果。

JSON 轉 CSV 時,輸入應該是物件陣列。欄位是所有鍵的聯集,依第一次出現的順序排列,缺少某些欄位的列只會得到空白儲存格。含有分隔符號、引號或換行的儲存格會自動加上引號。

範例

id,name,active
1,Ada Lovelace,true
2,"Turing, Alan",false

會變成

[
  { "id": 1, "name": "Ada Lovelace", "active": true },
  { "id": 2, "name": "Turing, Alan", "active": false }
]

處理不規範的檔案

空白的標題儲存格會命名為 column1、column2 等,重複的名稱會加上後綴,例如 name_2,因此不會有任何值被覆蓋。比標題列短的列會用空字串補齊;多出來的儲存格會取得自己的欄名。如果某個引號欄位一直沒有關閉,錯誤訊息會告訴你它開始的確切行號和欄號。

常見問題

› 我的 CSV 會被上傳到伺服器嗎?

不會。解析和轉換完全在你的瀏覽器中執行,含有客戶或商業資料的檔案絕不會離開你的裝置。

› 分隔符號是怎麼偵測的?

在「自動偵測」模式下,工具會計算第一行中逗號、分號、Tab 和直線出現的次數(引號內的不算),並採用出現最多的那一個。如果猜錯了,請自行選擇分隔符號。

› 為什麼很長的數字會保留成字串?

JavaScript 的數字超過 15 到 16 位就會失去精確度,所以 ID、電話號碼或卡號這類長整數會保留為字串。像 007 這種有前導零的值也會保留為文字。

› JSON 轉 CSV 時,巢狀物件會怎麼處理?

巢狀物件和陣列會以精簡 JSON 的形式寫進同一個儲存格,資料不會遺失,之後也能再解析回來。