CSV 轉 JSON 轉換器
免費的 CSV 轉 JSON 轉換器,也能把 JSON 轉成 CSV。能正確處理引號、欄位內的換行,以及用分號分隔的 Excel 檔案,全部在瀏覽器中完成,不會上傳任何內容。
它做什麼
CSV 就是用文字寫成的表格:每行一筆紀錄,欄位之間以分隔符號隔開。它看起來很簡單,正因如此,轉換器常常在不知不覺中出錯。引號內的逗號是文字的一部分,而不是新的一欄;引號內的換行是欄位的一部分,而不是新的一筆紀錄;而葡萄牙文、西班牙文、法文或德文版的 Excel 存檔時會使用分號,因為在這些地區逗號是小數點。這個轉換器依照 RFC 4180 的規則讀取 CSV,藉由找出能讓每一行欄數都相同的那個符號來判定分隔符號,並把每一列轉換成以標題列為鍵的 JSON 物件。反向轉換時,任何物件中出現過的每個鍵都會產生一欄,而不只是第一個物件中的鍵。
使用方式
- 貼上 CSV 或 JSON,或開啟一個檔案。
- 檢查選項:分隔符號、標題列和資料類型。
- 依需要的方向轉換,然後複製或下載結果。
常見問題
為什麼我的郵遞區號和 ID 維持為文字?
因為把它們轉成數字會改變它們的值。007 會變成 7,而超過 16 位數的 ID 會被 JavaScript 悄悄四捨五入成另一個數字。只有來回轉換後仍保持不變的值才會變成數字;關閉類型轉換即可讓所有內容維持為文字。
我的 CSV 來自 Excel,結果所有內容都擠在同一欄裡。
它很可能是用分號儲存、卻以逗號讀取的。把分隔符號維持在自動偵測(它會檢查四種常見的分隔符號),或自行選擇分號。
為什麼像 4,50 這樣的小數會保留為文字?
在以分號分隔的檔案裡,4,50 很可能是四點五,但 1,500 可能是一點五,也可能是一千五百,靠猜測會在沒有任何警告的情況下改變數值。請在你自己的程式中轉換它們,在那裡你知道它究竟是哪一種。
巢狀物件是如何變成欄位的?
開啟攤平後,{"address": {"city": "Recife"}} 會變成名為 address.city 的一欄。清單,以及關閉攤平時的物件,會以 JSON 文字的形式寫入儲存格,因此不會遺失任何內容。
為什麼要防範公式?
試算表程式會把以 =, +, - 或 @ 開頭的儲存格當成公式,而公式可以從網路擷取資料或執行指令。如果資料來自使用者或某個網站,請在用 Excel 開啟檔案之前先開啟防護。真正的負數不受影響。
RFC 4180 — CSV
Wikipedia — Comma-separated values
OWASP — CSV Injection