CSV 轉 JSON 完全指南

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格式化 修復
巢狀展開失敗 鍵名層級不規範 檢查點號分隔是否一致

實用技巧

  1. 轉換後用 JSON格式化 美化輸出
  2. 用 JSONPath 快速驗證轉換結果
  3. Excel 匯出的 CSV 常含 BOM 頭,轉換前需去除
  4. 日期欄位建議統一為 ISO 8601 格式

總結

CSV 與 JSON 的互轉是日常開發中的高頻操作。掌握結構差異和轉換規則,配合 JSON↔CSV工具,可以高效完成資料格式轉換。遇到複雜巢狀或大檔案場景時,參考本文的技巧逐一解決即可。

#CSV#JSON#数据转换#表格#开发