tigtools

CSV 轉 JSON 轉換器

貼上 CSV 或開啟檔案,即可取得 JSON 物件陣列或陣列的陣列。解析會在瀏覽器中進行,資料不會離開您的裝置。

在瀏覽器中執行 免註冊

輸出格式

使用方式

  1. 貼上 CSV 文字、開啟 .csv 或 .tsv 檔案,或按下「試用範例」。
  2. 保留「自動偵測」,或自行選擇分隔符號,並設定第一列是否包含欄名。
  3. 可選擇是否偵測數字、布林值和 null,並選擇輸出為物件或陣列。
  4. 複製 JSON,或將其下載為 .json 檔案。

運作方式

解析器遵循 CSV 規範 RFC 4180:欄位可以用雙引號括住;加引號的欄位中可以包含分隔符號和換行;欄位中的兩個連續雙引號代表一個雙引號字元。換行可以是 CRLF(Windows)、LF(macOS、Linux)或 CR;檔案結尾的換行不會新增空白記錄。完全空白的行會略過。檔案開頭的位元組順序標記(Excel 常會寫入)會移除。如果加引號的欄位沒有結尾引號,系統會回報欄位起始行數的錯誤,因為若自行猜測,可能會把檔案剩餘內容無聲地合併成同一個儲存格。

自動偵測會檢查前幾行的逗號、分號、定位字元和直線符號,並選擇能讓欄數保持一致的分隔符號。若有標題列,每筆記錄會轉換成以欄名為鍵的物件;空白欄名會改為 column_1、column_2…,重複的欄名則會加上後綴,例如 id_2。欄位數少於標題列的資料列會以空值補齊;多出的欄位會取得額外欄名。

預設會將所有值保留為字串,這是較安全的選擇:像 01234 這類郵遞區號、電話號碼和 ID 都會保留開頭的零。開啟型別偵測後,完全符合 JSON 數字格式的值會轉為數字(但 007、1,5 和超過 2^53 的整數不會);不分大小寫的 true 和 false 會轉為布林值;null 或空白儲存格會轉為 null。日期會保留為文字。

範例

試算表匯出檔

id,name,price\n1,Desk,149.90 會轉換為 [{"id":"1","name":"Desk","price":"149.90"}]。開啟型別偵測後,則會轉換為 {"id":1,"name":"Desk","price":149.9}。

歐洲地區的 Excel 檔案

在德國使用 Excel 儲存的檔案會以分號分隔:Name;Preis\nTisch;149,90。自動偵測會選用分號,而 149,90 會保留為字串 "149,90",因為它不是 JSON 數字。

含換行的儲存格

以 "221B Baker Street London"(加上引號並跨越兩行)表示的地址儲存格會保留為單一值 "221B Baker Street\nLondon",不會被當成新資料列。

常見問題

為什麼 JSON 中的數字會是字串?

CSV 沒有資料型別,因此預設會將所有值依原樣保留為文字。開啟「偵測數字、true/false 和 null」即可轉換看起來像數字的值。為避免變更資料,開頭的零和小數逗號會保留為文字。

資料列的欄數比標題列多或少時會怎麼處理?

缺少的值會轉為空字串(開啟型別偵測時則為 null)。多出的值會保留在名為 column_N 的額外鍵中,不會遺漏任何資料。

可以讀取 Excel .xlsx 檔案嗎?

不行,只支援文字格式的 CSV 和 TSV。在 Excel 或 Google 試算表中,請先使用「檔案 › 另存新檔/下載 › CSV」,再於此處開啟該檔案。

可以轉換多大的檔案?

在桌上型電腦上,數 MB 的檔案也能在片刻內轉換完成。檔案大小上限取決於裝置記憶體,因為整個檔案和 JSON 結果都會保留在瀏覽器分頁中。

隱私權

CSV 只會在瀏覽器中讀取和轉換。開啟的檔案不會上傳,也不會儲存或傳送至分析服務。