先判斷資料結構
JSON 可以表示物件、陣列、字串、數字、布林值和 null。CSV 是由欄位和記錄組成的表格,沒有同樣的內建型別體系。需要規則的行列結構時可以使用 CSV;記錄含有巢狀物件或長度不一的清單時,應優先保留 JSON。表格看起來整齊,不代表原有關係都還存在。
把識別碼保留為文字
00127 這樣的代碼是識別碼,不一定等於數字 127。將它儲存為文字,匯入試算表軟體時也將對應欄設為文字。電話號碼和很長的數字 ID 同樣需要注意。普通 JavaScript 數值無法精確表示超過 9,007,199,254,740,991 的每一個整數。精度重要時,使用帶引號的字串,或明確支援相應數值範圍的工具。
讓剖析器處理 CSV
帶引號欄位中的逗號是內容,不是欄分隔符號。這樣的欄位還可以包含換行,內部雙引號則需要逸出。因此,簡單地按每行的逗號切分並不可靠。轉換前核對分隔符號、標題列、重複欄名,以及各筆記錄的欄位數。不要把驗證失敗的記錄悄悄丟棄。
為巢狀資料指定對應規則
一張包含多個商品的訂單,需要明確的匯出方式。可以用帶訂單 ID 的獨立商品表,也可以將清單儲存為一個儲存格中的 JSON 文字。物件展開時,如果鍵名本身含有選定的分隔符號,就可能出現含糊的欄位名稱。記錄對應方式,並在重新匯入時遵守同樣規則。格式化或排序物件鍵名,不等於可以任意改變陣列順序。
先用少量資料做一次往返驗證
挑選有代表性的樣本轉換,再匯入回來,比較記錄數量和關鍵欄位。樣本應包含帶重音字元、空字串、null、引號以及多行文字。用試算表軟體開啟不可信 CSV 時,檢查可能被解讀為公式的儲存格,並使用文字匯入設定。保留原始檔案和轉換參數;這些檢查能發現「下載成功」提示無法反映的含義變化。
www.rfc-editor.org · developer.mozilla.org
