跳至主要內容

將 CSV 轉換為 JSON

每一列 CSV 都會成為一個 JSON 物件,而標題列則提供屬性名稱。本指南以一個含有引號內逗號與跳脫引號的小型檔案實際進行轉換,並逐一說明轉換器套用的每條規則。

實際範例

輸入 (CSV)
id,name,item,price,paid
1,"Smith, Jane","Monitor 27""",189.99,true
2,Kim,Keyboard,,false
輸出 (JSON)
[
  {
    "id": 1,
    "name": "Smith, Jane",
    "item": "Monitor 27\"",
    "price": 189.99,
    "paid": true
  },
  {
    "id": 2,
    "name": "Kim",
    "item": "Keyboard",
    "price": null,
    "paid": false
  }
]

因為 "Smith, Jane" 以雙引號包住,其中的逗號會留在值裡,而不會開始新的欄位。在 "Monitor 27""" 中,連續兩個雙引號會變成一個實際的引號字元。Kim 的 price 是空的,因此變成 null;數字與 true/false 會以 JSON 型別輸出,而非字串。

轉換器的處理規則

  • 每個非空白行即為一筆記錄,空白行會被略過。以引號包住的值不能包含換行。
  • 值中含有分隔符時,請以雙引號包住。在引號內,引號字元要寫成兩個引號 ("")。
  • 每個值開頭與結尾的空格會被移除。
  • 開啟「第一行作為標題」時,第一行會提供鍵名;關閉時,鍵名依序為 col0、col1、col2 等。
  • 空白儲存格與 null 一詞會變成 null,true 和 false(不分大小寫)會變成布林值,數字文字即使加上引號也會變成數值,因此 00123 會變成 123。
  • 值的數量少於標題數的資料列,缺少的欄位會填入 null;超出最後一個標題的值則會被捨棄。

更多轉換指南