文字與資料格式 指南
CSV 轉 JSON 欄位錯位怎麼查:標題列與重複欄位驗收
CSV 的第一列常被當成 JSON 鍵名,但分隔符號、引號與重複標題會讓整列資料錯位。先檢查小樣本與欄位數,再轉換完整檔案。
更新日期:
要解決的問題
同一份 CSV 在試算表看似正常,轉換後卻出現空鍵、`undefined`、後半欄位消失或重複鍵被覆蓋。這類錯誤常不會讓轉換程式報錯,卻會在匯入資料庫後才被發現。
適合誰使用
適合整理問卷、名單、產品表、交易匯出與任何要把表格資料交給 API 或程式處理的人。
公式與概念
先確認標題列是否真的在第一列。部分匯出檔前面會有報表名稱、空白列或欄位說明;轉換器若把那一列當鍵名,後續每個物件都會使用錯誤名稱。RFC 4180 將第一列視為可選的欄位名稱列,不能假設所有 CSV 都有相同結構。
逐列計算分隔後的欄位數,並注意引號內的逗號不應切開欄位。若某列少一欄,可能是未成對引號、換行文字或錯用分號/逗號;先在小樣本定位,不要直接修改整批資料。
重複標題是資料模型問題,不只是顯示問題。JSON 物件通常不能安全表達兩個同名鍵;轉換器可能保留最後一個值、加上數字後綴,或把其中一欄捨去。先把標題改成明確且唯一,再記錄欄位對應。
編碼與分隔符號要分開診斷。中文亂碼多半是讀取編碼不符,欄位全部擠在一欄則常是分隔符號不符;同一份檔案可能同時有兩種問題。本站 CSV 轉 JSON 工具適合在清理後做轉換,但輸出仍應抽查。
轉換後比較原 CSV 的標題、第一筆、中間一筆與最後一筆。檢查數字是否被當字串、空白是否有意義、日期是否保留原樣;不要用試算表自動格式化後的畫面當唯一真相。
若目的地是既有 API,先對照 schema 決定空值要保留為 null 還是省略,並把決策寫入轉換紀錄。
最後再檢查標題是否含前後空白、不可見字元或不同大小寫,並保留欄位對應表。
轉換前先定義欄位契約:必填鍵、可空白欄位與日期數字格式,並把清理與轉換分開記錄。
抽查完成後確認總筆數與欄位數,並加入含逗號、換行、引號及中文的邊界案例;把通過樣本留作回歸測試。
匯入前再以唯讀方式保存清理後 CSV 與轉換設定,並記錄誰核對了首、中、尾資料。這份小型稽核軌跡能在下游欄位錯置時快速回到原始樣本,不必重新猜測分隔符號。
匯入後比對一筆原始資料與 API 回應。
操作步驟
- 複製原始 CSV,記下預期欄位名稱與資料筆數。
- 確認標題列位置、分隔符號、引號規則與文字編碼。
- 找出空白或重複標題,改成唯一且可理解的名稱。
- 用少量含逗號、引號、空值與中文的列先轉換。
- 比較 JSON 的鍵、欄位數、首中尾資料與型別。
- 確認抽查無誤後再轉換完整檔案並保存版本。
實際範例
產品匯出檔前面多了一列報表標題,且最後兩個欄位都叫 `Status`。團隊先移除非資料列、將欄位改成 `stock_status` 與 `order_status`,用含逗號的商品描述做小樣本轉換,確認每筆仍有 8 個鍵後才處理完整檔。
常見錯誤
- 把報表標題或空白列誤當成 CSV 標題列。
- 看到逗號就切欄,忽略引號內的逗號與換行。
- 保留重複鍵名,期待 JSON 自動保存兩個值。
- 只看試算表畫面,不驗證轉換後的實際鍵與資料筆數。
- 整批轉換後才發現編碼或分隔符號設定錯誤。
推薦工具
相關指南
常見問題
- CSV 可以有重複欄位名稱嗎?
- CSV 格式本身可能允許,但轉成 JSON 物件後同名鍵會產生覆蓋或改名問題。若欄位都重要,先改成唯一名稱並保存對應表。
- 為什麼 CSV 轉 JSON 後每筆欄位都錯一格?
- 常見原因是標題列位置錯誤、分隔符號設定不符,或某列的引號沒有成對。先檢查原始文字與少量樣本,再修正設定。
- CSV 轉 JSON 會自動判斷數字和日期嗎?
- 不同工具可能把值保留為字串或嘗試轉型;不要假設結果。用代表性資料抽查型別,尤其是前導零、帳號、郵遞區號和日期。
下一步
用 CSV 轉 JSON 工具前先確認標題與分隔規則,先轉小樣本,再驗收完整輸出。