CSV 轉 JSON 完全指南
JSON(更新於 2026年6月1日)
CSV 與 JSON 的結構差異
CSV(逗號分隔值)和 JSON(JavaScript 物件表示法)是兩種最常見的資料格式,但它們的結構有本質區別:
| 特性 | CSV | JSON |
|---|---|---|
| 結構 | 扁平表格 | 巢狀樹狀 |
| 資料型別 | 全部為字串 | 字串、數字、布林、null |
| 巢狀支援 | 不支援 | 原生支援 |
| 註解 | 不支援 | 不支援(JSON5 支援) |
| 適用場景 | 表格資料、Excel 匯出 | API 回應、設定檔 |
轉換規則詳解
CSV 轉 JSON
CSV 每一行會被轉換為一個 JSON 物件,第一行作為鍵名(header),後續行作為值:
name,age,city
張三,28,台北
李四,32,上海
轉換結果:
[
{ "name": "張三", "age": 28, "city": "台北" },
{ "name": "李四", "age": 32, "city": "上海" }
]
JSON 轉 CSV
JSON 陣列中的每個物件會被展開為 CSV 的一行,物件的鍵名組成 header 行。
使用 JSON↔CSV工具 進行轉換
步驟一:準備資料
確保你的 CSV 檔案格式正確:首行為表頭,每行欄位數一致,包含逗號的欄位用雙引號包裹。
步驟二:選擇轉換方向
開啟 JSON↔CSV工具,選擇「CSV → JSON」或「JSON → CSV」模式。
步驟三:貼上或上傳資料
將資料貼到輸入區域,或直接上傳 .csv / .json 檔案。
步驟四:設定選項
- 分隔符:預設逗號,也支援製表符(TSV)和分號
- 是否包含表頭:控制首行是否作為欄位名
- 巢狀展開:JSON 中巢狀物件的處理方式
- 數字自動識別:將
"28"自動轉為28
步驟五:取得結果
點擊轉換按鈕,結果即時顯示在輸出區域,可一鍵複製或下載。
處理表頭(Headers)
表頭是 CSV 的核心。轉換時需注意:
- 表頭中的空格和特殊字元會被保留為 JSON 的鍵名
- 建議使用小寫 + 底線命名(如
user_name),方便後續處理 - 如果 CSV 沒有表頭,工具會自動產生
col_1,col_2等預設列名
處理巢狀物件
CSV 本身不支援巢狀,但有些 CSV 會用點號表示層級:
user.name,user.email,order.id
張三,zhang@example.com,1001
使用 JSON↔CSV工具 時,勾選「自動展開巢狀」選項,即可產生:
{
"user": { "name": "張三", "email": "zhang@example.com" },
"order": { "id": 1001 }
}
大檔案處理技巧
- CSV 檔案超過 10MB 時,建議分批轉換
- 使用串流處理避免記憶體溢位
- 工具支援最大 50MB 檔案的線上轉換
- 超大檔案建議先在本機用 Python(pandas)預處理
常見錯誤及解決方案
| 錯誤 | 原因 | 解決方法 |
|---|---|---|
| 欄位數不一致 | 某行多/少了逗號 | 檢查引號包裹是否完整 |
| 編碼亂碼 | 檔案非 UTF-8 | 先用文字編輯器轉碼 |
| JSON 解析失敗 | 格式不合法 | 使用 JSON格式化 修復 |
| 巢狀展開失敗 | 鍵名層級不規範 | 檢查點號分隔是否一致 |
實用技巧
總結
CSV 與 JSON 的互轉是日常開發中的高頻操作。掌握結構差異和轉換規則,配合 JSON↔CSV工具,可以高效完成資料格式轉換。遇到複雜巢狀或大檔案場景時,參考本文的技巧逐一解決即可。
#CSV#JSON#数据转换#表格#开发