CSV轉JSON轉換器

將CSV檔案轉換為JSON陣列(物件陣列)。可指定分隔符和是否將首行作為標題行,轉換結果支援複製和下載。所有處理均在瀏覽器內完成,不會發送到伺服器。

分隔符
將首行作為標題行
格式化顯示(帶縮排)


            
            已複製!
            
          

輸入CSV後,轉換結果將顯示在此處。

CSV行與JSON物件的對應關係

CSV的一行 name,age,city
轉換後的JSON物件 {"name": "...", "age": "...", "city": "..."}

將首行作為標題行時,第二行起的每一行都會轉換為以標題列名為鍵的一個物件。

CSV→JSON 轉換是什麼

CSV→JSON 轉換,是指將以逗號分隔的 CSV 資料,轉換成程式易於處理的 JSON 陣列(物件的陣列)的處理。由於是以符合 RFC 4180 的剖析器讀取,可對應以雙引號括住的儲存格內的逗號、換行與經跳脫的引號(""),因此以 Excel 等輸出的複雜 CSV 也能不走樣地轉換。

轉換時會將第一列視為標題列,第二列以後的各列則轉換成「標題名稱: 值」形式的物件。處理全部在瀏覽器內的 JavaScript 完成,所輸入的 CSV 內容不會傳送至伺服器。

CSV→JSON 轉換的使用方式

  1. 輸入 CSV 在文字區域貼上 CSV 或直接輸入。手邊沒有資料時,可用範例按鈕載入示例。
  2. 選擇分隔字元 在分隔字元設定中選擇資料使用的是逗號還是定位字元。若為 TSV 檔案請選擇定位字元。
  3. 設定標題列的處理 啟用「以首列為標題」後,第一列的值便會作為 JSON 物件的鍵名使用。
  4. 選擇顯示形式 切換縮排顯示,可在易讀的附縮排 JSON 與緊湊的 JSON 之間選擇。
  5. 複製結果 轉換後的 JSON 會自動顯示於畫面。可用複製按鈕放入剪貼簿,直接使用。

用好本工具的小技巧

  • 啟用"將首行作為標題行"後,首行的值將作為JSON物件的鍵名。關閉後則使用col1、col2…這樣的連續編號鍵。
  • 如果標題中存在空白或重複的列名,該列會自動替換為col{列號}這樣的鍵,以避免數值丟失。
  • 與姐妹工具"JSON轉CSV"搭配使用,可以在CSV和JSON之間反覆相互轉換。
  • 轉換採用符合RFC 4180標準的解析器,能正確處理引號內單元格中的逗號、換行以及轉義引號(""),因此Excel等匯出的複雜CSV也能正確轉換。

CSV→JSON 轉換的活用場景

建立 API 測試用資料

可將由試算表匯出的 CSV,迅速轉換成確認 API 運作所用的 JSON 負載。

準備投入 NoSQL 資料庫的資料

MongoDB 這類文件導向資料庫處理 JSON 格式的資料,因此可將試算表軟體做成的清單直接轉換為投入用資料。

建立前端的模擬資料

可由 Excel 做成的清單,迅速備妥畫面暫用顯示與測試所需的 JSON 陣列。

不寫腳本的一次性資料轉換

對於不值得當場撰寫轉換程式碼、僅此一次的小規模 CSV→JSON 轉換,也能輕鬆使用。

用語集

CSV
Comma-Separated Values 的縮寫,指以逗號分隔值來表示表格形式資料的格式。廣泛用於試算表軟體的讀寫。
JSON
JavaScript Object Notation 的縮寫,指以鍵與值的組合為核心表示資料的輕量格式。多數程式語言與 API 皆以標準方式處理。
TSV
Tab-Separated Values 的縮寫,指以定位字元分隔值來表示表格形式資料的格式。特點是即使值中含有逗號,分隔也不易變得曖昧。
RFC 4180
指訂定 CSV 檔案一般書寫格式的規格。其中規範了以雙引號括住的儲存格內的逗號、換行與引號的處理方式等。
標題列
指置於 CSV 第一列、表示各欄名稱的列。轉換成 JSON 時,此列的值會作為物件的鍵名使用。
跳脫
指想在 CSV 中將雙引號本身作為值時,以兩個引號重疊("")來表示的處理。剖析器會將其還原為一個雙引號。

常見問題

預設情況下,首行被視為標題行,第二行起的每一行都會轉換為形如{"標題名": "值", ...}的物件,所有物件再組成一個JSON陣列。這是API響應和匯入NoSQL資料庫時常見的資料格式。

可以。將"分隔符"選擇為"Tab",即可像CSV一樣將TSV檔案轉換為JSON。

是的,CSV中的所有值都以文本處理,因此看起來像數字或布林值的內容在JSON中也會以字串形式輸出(如"123"或"true")。如需真正的數值型別,請在轉換後於JSON側進行型別轉換。

不會。轉換處理全部在瀏覽器內的JavaScript中完成,輸入的CSV內容不會被發送到任何伺服器。即使是包含個人資訊的資料也可以安心使用。
工具君

閒話 ― 為什麼API更青睞JSON而非CSV

CSV能夠簡單地表示表格資料,但無法表示陣列、巢狀物件等巢狀結構。大多數REST API的響應採用JSON格式,正是因為單條記錄內可以自由嵌入陣列和物件,從而能夠原樣傳輸CSV無法表達的複雜資料結構。

另一方面,CSV也有難以捨棄的優點:"能用Excel或表格軟體立即開啟""一行對應一條記錄,人眼易於核對"。在實際業務中,"彙總核對用CSV、系統間對接用JSON"的分工已經固定下來,這也是像本工具這樣的相互轉換需求長期存在的原因。

儘管名為JSON(JavaScript Object Notation),如今幾乎所有語言都將其作為標準資料格式支援,而不僅限於JavaScript。自2001年Douglas Crockford釋出該規範以來,它被有意設計為一種與具體語言無關的最小化資料表示方式,這正是其廣泛普及的重要原因之一。