CSV 轉 JSON 轉換器

線上把 CSV 轉成 JSON:免費、即時、私密。檔案在你的瀏覽器內處理,不上傳伺服器。

CSV 分隔符
結果

轉換後的檔案和預覽會顯示在這裡。

已準備好。選擇一個表格檔開始轉換。

轉換原理

  • 第一列會作為標題列——其儲存格成為 JSON 的欄位名,之後每一列對應一個物件。
  • 依數據選擇分隔符號——逗號、分號或 Tab。

表格檔會在你的瀏覽器本機轉換,不會上傳到 BroBroGo。

常見問題

CSV 怎麼轉成 JSON?

拖入 CSV 檔案,點擊轉換,幾秒就能下載 JSON 檔案,還附結果預覽,全程在本機完成。

檔案最大能轉多大?

單個檔案最多 8 MB、10,000 列、200 欄。數據量更大時,建議先拆分成小檔案。

CSV 轉 JSON:純文字表格如何變成結構化物件

將 CSV 檔案轉換成 JSON 看似直接,但兩者之間存在幾個根本差異,而這個工具正是針對這些差異設計。CSV 儲存的是純文字表格——每行一筆記錄,欄位由逗號、分號或 Tab 分隔;JSON 則以鍵值對的陣列表示結構化數據。轉換時,工具會把 CSV 的每一行變成一個物件,每一欄變成物件的鍵,而所有欄位值一律保留為字串。以下逐步拆解這個過程的實際細節。

CSV 格式的基本規則與限制

CSV 沒有統一的國際標準,最接近的參考是 RFC 4180,但實務上分歧甚大。一個標準的 CSV 檔案使用逗號作為分隔符,欄位值若包含逗號、換行或雙引號,則必須用雙引號括起,且欄位內的雙引號須以兩個連續雙引號跳脫。然而許多匯出軟體(例如舊版 Excel)對引用規則的執行並不嚴格,導致同一個 CSV 可能同時包含引用與未引用的欄位。轉換工具必須能處理這些變異,否則解析就會失敗。

CSV 的另一個根本限制是:所有資料都是文字。它不像 Excel 工作表會區分文字、數字、日期、布林值,也不儲存任何公式或格式。這表示一個 CSV 檔案裡的「123」只是三個字元,而不是整數 123。轉換成 JSON 時,這個「123」自然會變成字串 "123",除非後續手動轉型。這個特性對某些用例至關重要,例如保留郵政編碼的前導零。使用這個工具時,所有 CSV 欄位值都會保持為字串,這與許多自動型別推斷的轉換器不同,後者會把看起來像數字的欄位自動轉成數字,從而丟失前導零。

分隔符的選擇:逗號、分號還是 Tab?

這個工具要求使用者明確指定 CSV 的分隔符。這不是多餘步驟,而是因為 CSV 檔案在不同地區慣用不同分隔符。英文環境通常用逗號,但歐洲許多地區因小數點用逗號,所以 CSV 改用分號。Tab 分隔則常見於系統匯出的純文字表格式數據。如果選錯分隔符,工具會把欄位內容錯誤分割,導致欄數不一致、數據錯位,甚至整個解析失敗。例如一個用分號分隔的檔案,若選了逗號,工具會把整行視為單一欄位,因為裡面找不到逗號。

工具提供三個選項:逗號、分號、Tab。它不會自動偵測分隔符,因為自動偵測涉及機率判斷,可能出錯。使用者必須知道來源檔案使用哪個分隔符。常見做法是:用文字編輯器打開 CSV 檔案,觀察第一行,如果欄位之間有「;」則選分號;如果有「\t」則選 Tab;否則通常就是逗號。另外要注意,即使檔案副檔名是.csv,內容也可能使用分號,這在中文 Windows 下的 Excel 匯出很常見。

類型處理:為何數字不會自動變成數字

這個工具的核心行為是:所有 CSV 欄位值一律輸出為 JSON 字串。它不會嘗試將「123」推斷為數字、「true」推斷為布林值或「2025-03-15」推斷為日期。這是有意為之的設計,因為 CSV 本身不攜帶型別資訊,任何自動猜測都可能造成數據失真。例如郵政編碼「02134」若被當成數字,會變成 2134;產品代碼「00123」會變成 123。日期字串「2025/03/15」若被當成日期再序列化,可能變成其他格式(如 ISO 8601)。保持為字串則保證原樣保留。

使用者若需要數字或布林值,可以在轉換後的 JSON 檔案中手動修改,或在接收 JSON 的應用程式層面進行型別轉換。許多程式語言(如 JavaScript 的 JSON.parse)在解析 JSON 時也不會自動將字串轉成數字,除非後續顯式處理。因此這個工具的輸出是「最無害」的版本:保留原始文字內容,不加入任何推斷。

內嵌逗號與換行:最常見的解析失敗原因

CSV 的引用規則容許欄位內包含逗號和換行,但實際檔案中此類情況經常出錯。例如一個欄位值為「Smith, John」,標準表示法應為 "Smith, John",但許多匯出工具只在包含逗號時才加引號,有時連引號本身也處理不當。如果 CSV 檔案中某個欄位包含未經引號括起的逗號,工具會誤認為分隔符,導致該行欄位數增加,解析出錯。

換行問題更麻煩。CSV 的記錄由換行符分隔,但若某個欄位內包含換行(例如地址中有兩行),則該換行必須被包在引號內。如果引號不匹配,工具會認為該行提前結束,下一行被當成新記錄的開始,造成整張表格錯亂。這個工具在偵測到引用錯誤時會顯示:「This CSV could not be parsed.」使用者應先用文字編輯器檢查 CSV 檔案,修復引用問題後再嘗試轉換。另外要注意,轉換成功後,欄位內的換行會以 字元保留在 JSON 字串中,不會被移除。

錯誤訊息與限制:何時轉換會失敗

這個工具會在以下情況顯示明確錯誤訊息,而不會輸出錯誤的 JSON:

  • 無法解析的 CSV:如上所述,引用錯誤或欄位數不一致時。「This CSV could not be parsed.」
  • 無資料行:檔案只有標題列或完全空白時。「This file has no table rows.」
  • 超出列數限制:表格行數超過 10,000 行時。「This table has more than ‹max› rows.」
  • 超出欄數限制:表格欄數超過 200 欄時。「This table has more than ‹max› columns.」
  • 檔案太大:超過 8 MB 時。「This file is too large. Use a file under ‹max›.」
  • 未選擇檔案:使用者未選取檔案就按轉換。「Choose one file first.」
  • 錯誤檔案類型:只接受 CSV、JSON 或 XLSX 檔案。「Choose a CSV, JSON or XLSX file.」
  • 轉換超時:因檔案過大或處理資源不足而逾時。「This conversion is taking too long. Try a smaller file.」

所有轉換都在瀏覽器端完成,不會上傳檔案到伺服器。這對處理含有個人資料的 CSV(如客戶名單、地址)尤其重要——數據不會離開使用者的電腦。

FAQ

1. 點解我嘅 CSV 入面嘅數字,例如「123」,轉換後變成字串「"123"」?

因為 CSV 本身唔儲存型別資訊,所有欄位值都係純文字。工具為咗避免自動推斷出錯(例如令前導零消失或日期格式改變),將所有值保留為字串。你需要喺接收 JSON 嘅應用程式入面轉型。

2. 我想保留郵政編碼嘅前導零,例如「00123」,應該點做?

直接使用呢個工具就可以。因為佢唔會自動將「00123」解讀為數字,輸出嘅 JSON 入面會係字串 "00123",前導零得以保留。之後你讀取 JSON 時要確保唔好再用自動型別轉換將佢變成數字。

3. 如果 CSV 入面某個欄位包含換行符,轉換後會點?

只要 CSV 檔案嘅引用規則正確(該欄位用雙引號括起),工具會保留換行符,並以 JSON 嘅換行跳脫序列 表示。例如一個地址欄位值係「九龍 旺角」,JSON 入面會變成 "九龍 旺角"。如果引用唔正確,工具會報錯「This CSV could not be parsed.」

4. 我嘅 CSV 用分號分隔,但副檔名係.csv,工具會自動偵測嗎?

唔會。工具需要你手動揀選分隔符。你應該用記事本打開個檔案,睇清楚第一行嘅欄位之間係用逗號、分號定 Tab,然後喺工具揀返對應選項。

5. 轉換完後,我見到 JSON 入面所有欄位都係字串,點樣先可以將某啲欄位改做數字?

你可以用任何文本編輯器或者程式語言(例如 JavaScript 嘅 JSON.parse 之後再 Number() 轉換)嚟修改輸出嘅 JSON。呢個工具唔會做呢類後處理,以免影響其他欄位嘅完整性。

6. 將 CSV 轉成 JSON 同反方向(JSON to CSV)有咩主要分別?

CSV 轉 JSON 相對簡單:每一行變成一個物件,每個欄位變成一個鍵值對。但反方向時,如果 JSON 包含巢狀物件(物件入面仲有物件),就需要「扁平化」先可以放入 CSV 嘅二維表結構。呢個工具嘅 JSON to CSV 頁面會處理呢個問題,但 CSV to JSON 呢邊唔需要擔心巢狀——CSV 本身就係扁平的。