將 CSV 轉換為 JSON
每一列 CSV 都會成為一個 JSON 物件,而標題列則提供屬性名稱。本指南以一個含有引號內逗號與跳脫引號的小型檔案實際進行轉換,並逐一說明轉換器套用的每條規則。
實際範例
id,name,item,price,paid 1,"Smith, Jane","Monitor 27""",189.99,true 2,Kim,Keyboard,,false
[
{
"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;超出最後一個標題的值則會被捨棄。