CSV 轉 JSON 轉換器
簡介
CSV 轉 JSON 轉換器彌合了試算表樣式資料與結構化 JSON 之間的差距。無論您是將資料從 Excel 匯入 Web 應用程式、準備資料庫匯出的 API 負載,還是轉換設定檔,該工具都能精確靈活地處理轉換。
與需要安裝的命令列工具或將資料上傳到伺服器的線上服務不同,Toollect CSV 轉 JSON 轉換器完全在您的瀏覽器中執行。每次按鍵都會即時更新 JSON 輸出,為您提供即時反饋。無需透過網路傳輸資料,兼顧速度和隱私。
憑藉智慧型分隔符偵測、型別推斷、多種輸出格式和即時預覽表,該轉換器能夠處理使 CSV 轉換令人沮喪的邊緣情況:包含逗號的引用欄位、多行值、不一致的列數等。
使用場景
CSV 轉 JSON 的轉換模式出現在許多實際工作流程中。了解這些場景有助於您識別何時該工具適合您的需求。
資料庫匯出到 API 整合
大多數資料庫系統可以將查詢結果匯出為 CSV。當您需要將這些資料匯入 REST API 或 JavaScript 前端時,轉換為 JSON 是自然的橋樑。將 MySQL 或 PostgreSQL 中的使用者清單、產品或訂單匯出為 CSV,轉換為 JSON,其結構即可與 Web 框架直接相容。
Excel 和 Google Sheets 到 Web 應用程式
試算表資料通常需要遷移到使用 JSON 的 Web 應用程式中。將工作表匯出為 CSV,轉換為 JSON,列標題即可成為適用於 JavaScript、TypeScript 或任何現代框架的屬性名稱。這在從手動試算表管理遷移到專用軟體時很常見。
設定和遷移資料
系統設定、環境變數對映和遷移資料通常以 CSV 格式儲存或交換。轉換為 JSON 後,可以方便地進行驗證、轉換以及與基礎設施即程式碼工具和設定管理系統整合。
ETL 管道和資料處理
萃取-轉換-載入(ETL)管道通常從外部來源的 CSV 檔案開始。在早期階段轉換為 JSON 可以實現結構化處理、模式驗證以及與 JSON 原生工具和資料庫的下游整合。
資料隱私
Toollect CSV 轉 JSON 轉換器在您的瀏覽器中本地處理每一個位元組的資料。沒有任何 CSV 內容會傳輸到任何伺服器、儲存在任何資料庫或記錄在任何系統中。
所有檔案讀取都透過瀏覽器的 FileReader API 完成,該 API 將檔案載入到您裝置的記憶體中。生成的 JSON 輸出將保留在您的瀏覽器中,直到您明確將其複製到剪貼簿或下載為檔案。沒有背景網路請求、工具頁面上沒有分析腳本,轉換器也不使用任何 cookie 或本地儲存。
這種零傳輸架構使該工具適用於敏感資料、內部業務記錄以及任何資料落地或隱私合規性很重要的場景。
工作原理
該轉換器透過為準確性和靈活性設計的多階段管道處理您的 CSV 資料。
解析
該工具使用遵循 RFC 4180 約定的自訂解析器逐行讀取您的 CSV 輸入。它正確處理:
- 引用欄位:用雙引號括起來的欄位可以包含分隔符、換行符和其他特殊字元
- 轉義引號:欄位內的雙引號表示為兩個連續的雙引號(
"") - 空欄位:連續的分隔符產生空字串值
- 尾部空格:引號外的空格將被修剪以獲得乾淨輸出
分隔符偵測
在自動偵測模式下,該工具會分析資料的前幾行,測試每個候選分隔符(逗號、製表符、分號),並選擇產生最一致列數的分隔符。您可以隨時手動覆蓋偵測到的分隔符。
型別推斷
啟用型別推斷後,該工具會掃描每個值並轉換識別的模式:
- 數字:整數和小數(
42、3.14、-1.5、1e10)成為 JSON 數字 - 布林值:
true和false(不區分大小寫)成為 JSON 布林值 - Null:
null(不區分大小寫)成為 JSONnull - 字串:其他所有內容保持為字串
您還可以啟用 JSON 值解析,它會嘗試解析看起來像 JSON 物件或陣列的欄位。
輸出格式
最終的 JSON 輸出根據您選擇的選項生成:
- 物件陣列:每行成為一個以表頭行值為鍵的物件(預設)
- 二維陣列:輸出為陣列的陣列,忽略表頭行
- 按第一列鍵控:一個以每個資料行第一列值為鍵的物件
輸出可以格式化(2 或 4 空格縮排)或壓縮為單行。
輸入格式參考
了解 CSV 格式規則有助於您準備能夠順利轉換而不會出現意外問題的資料。
分隔符選項
| 分隔符 | 符號 | 自動偵測 | 典型用途 |
|---|---|---|---|
| 逗號 | , |
是 | 標準 CSV 匯出 |
| 製表符 | \t |
是 | TSV 檔案、試算表剪貼簿 |
| 分號 | ; |
是 | 歐洲 CSV 地區設定(Excel) |
| 自訂 | 任意字元 | 否 | 管道符(` |
引號規則
CSV 使用雙引號括起包含特殊字元的欄位:
- 包含分隔符的欄位必須加引號:
"王小明, 李小華" - 包含換行符的欄位必須加引號:
"第1行\n第2行" - 包含雙引號的欄位透過重複雙引號來轉義:
"""引用文字"""變為"引用文字" - 未加引號的欄位會去除周圍空格
表頭行
預設情況下,第一行被視為表頭行。每個表頭值成為 JSON 屬性鍵。表頭會被修剪且不能為空。重複的表頭名稱會添加數字後綴(例如 名稱、名稱_2)。
編碼
該工具預期 UTF-8 編碼的輸入。帶有 UTF-8 BOM(位元組順序標記)儲存的檔案會透明處理——BOM 在解析期間被移除。其他編碼(Latin-1、Windows-1252)可能會產生亂碼字元;請在轉換前重新編碼為 UTF-8。
CSV 邊界情況展示
實際的 CSV 資料很少符合教科書範例。以下展示了該轉換器如何處理最常見的邊界情況。
引號內的逗號
名稱,描述,價格
Widget Pro,"包含線纜、說明書和收納包",29.99
引號內描述中的逗號被正確處理為值的一部分,而不是列分隔符。JSON 輸出保持完整字串不變。
多行值
ID,備註
001,"該產品需要
兩人組裝。
不包含工具。"
包含換行符的引號值被解析為跨越多行的單個欄位。JSON 輸出將換行符保留為 \n 轉義序列。
列數不一致
名稱,郵箱,電話
Alice,[email protected],555-0100
Bob,[email protected]
Charlie,[email protected],555-0200,extra
列數較少的行會為缺失欄位生成空字串。列數較多的行會生成額外的索引鍵。偵測到列數不一致時會顯示警告。
前導零
郵遞區號,城市
00123,台北
02134,高雄
啟用型別推斷時,00123 會變成數字 123(丟失前導零)。停用型別推斷以保留原始字串 "00123"——這對於郵遞區號、電話號碼和產品 ID 至關重要。
BOM 字元
從 Windows 版 Excel 匯出的檔案通常包含 UTF-8 BOM(\uFEFF)作為前幾個位元組。轉換器會自動移除 BOM,因此第一個表頭值是乾淨的。您無需任何操作。
空行
名稱,值
Alpha,1
Beta,2
空行和僅包含空格的行會被跳過。它們不會生成 JSON 條目,也不會觸發錯誤。
使用方法
使用 Toollect CSV 轉 JSON 轉換器無需設定或註冊。請按照以下步驟操作:
-
開啟工具 — 導航到 CSV 轉 JSON 轉換器頁面。介面顯示上傳區域、輸入文字區域、設定面板和輸出區域。
-
輸入資料 — 將 CSV 文字直接貼到文字區域,或點擊上傳區域(或拖放 .csv 檔案)載入檔案。
-
檢查設定 — 該工具會自動偵測分隔符,並預設啟用表頭和型別推斷。根據您的資料調整這些設定:
- 如果自動偵測不正確,請選擇不同的分隔符
- 如果資料缺少表頭行,請切換"首行為表頭"
- 停用型別推斷以將所有值保留為字串
-
預覽解析的資料 — 點擊"顯示預覽"查看解析後的 CSV 資料的表格檢視。這有助於驗證分隔符和表頭設定是否正確。
-
檢查 JSON 輸出 — JSON 輸出會在您輸入時自動更新。輸出文字區域是唯讀的,以防止意外編輯。
-
複製或下載 — 點擊"複製"將 JSON 複製到剪貼簿,或點擊"下載 JSON"將其儲存為 .json 檔案。
輸出格式參考
相同的 CSV 輸入可以生成三種不同的 JSON 結構。每種格式適用於不同的使用模式。
範例輸入:
產品,價格,有庫存
Widget,29.99,true
Gadget,49.95,false
物件陣列
每個資料行成為一個以表頭值為鍵的物件。這是預設且最常用的格式,直接對映到 JavaScript 陣列和大多數 REST API 負載。
[
{
"產品": "Widget",
"價格": 29.99,
"有庫存": true
},
{
"產品": "Gadget",
"價格": 49.95,
"有庫存": false
}
]
二維陣列
輸出是一個陣列的陣列。除非您明確停用表頭,否則表頭行會被排除。適用於矩陣資料和 Grid/DataTable 元件。
[
["產品", "價格", "有庫存"],
["Widget", 29.99, true],
["Gadget", 49.95, false]
]
按第一列鍵控
第一列的值成為物件鍵,其餘列形成值物件。適用於查詢表和字典式資料存取。
{
"Widget": {
"價格": 29.99,
"有庫存": true
},
"Gadget": {
"價格": 49.95,
"有庫存": false
}
}
第一列的值必須唯一。重複值會導致後出現的覆蓋先前的——發生這種情況時會顯示警告。
教程
本教程示範如何將 Excel 匯出的 CSV 檔案轉換為用於 Web 應用程式的 JSON 陣列。
場景:您有一個追蹤產品庫存的 Excel 試算表,希望將其匯入需要 JSON 的 Web 應用程式。
- 從 Excel 匯出 — 將您的試算表儲存為 CSV 檔案。您應該得到類似以下內容:
Product Name, SKU, Price, In Stock, Category
Widget Pro, WDG-001, 29.99, true, Tools
Gadget X, GDG-002, 49.95, false, Electronics
Super Tool, SUP-003, 99.00, true, Tools
Accessory Pack, ACC-004, 14.99, true, Accessories
-
開啟 CSV 轉 JSON 轉換器,將 CSV 檔案拖到上傳區域。該工具載入檔案,偵測逗號分隔符,並立即轉換資料。
-
檢查預覽 — 點擊"顯示預覽"查看表格表示。確認表頭行已正確解析。
-
JSON 輸出 顯示為:
[
{
"Product Name": "Widget Pro",
"SKU": "WDG-001",
"Price": 29.99,
"In Stock": true,
"Category": "Tools"
},
{
"Product Name": "Gadget X",
"SKU": "GDG-002",
"Price": 49.95,
"In Stock": false,
"Category": "Electronics"
},
{
"Product Name": "Super Tool",
"SKU": "SUP-003",
"Price": 99,
"Category": "Tools"
},
{
"Product Name": "Accessory Pack",
"SKU": "ACC-004",
"Price": 14.99,
"In Stock": true,
"Category": "Accessories"
}
]
注意 Price 值是數字(不是字串),In Stock 值是布林值,並且"Super Tool"缺少"In Stock"值被省略。
- 嘗試鍵轉換 — 從鍵大小寫下拉選單中選擇"snake_case"。輸出變為:
[
{
"product_name": "Widget Pro",
"sku": "WDG-001",
"price": 29.99,
"in_stock": true,
"category": "Tools"
}
]
- 嘗試鍵控格式 — 選擇"按第一列鍵控"以取得按產品名稱索引的物件:
{
"Widget Pro": {
"SKU": "WDG-001",
"Price": 29.99,
"In Stock": true,
"Category": "Tools"
},
"Gadget X": { ... }
}
- 下載結果 — 點擊"下載 JSON"將輸出儲存為 .json 檔案,供 Web 應用程式使用。
專業提示
掌握這些技巧,充分利用 Toollect CSV 轉 JSON 轉換器:
-
先使用預覽:在依賴 JSON 輸出之前,始終檢查預覽表。列不匹配、錯誤的分隔符或編碼問題在表格預覽中立即可見
-
處理前導零:郵遞區號、電話號碼和 ID 通常有前導零。停用型別推斷以將它們保留為字串——否則
00123會變成數字123 -
標準化列名:使用鍵大小寫設定將不一致的表頭轉換為統一的格式。對於 API 整合,通常首選 camelCase 或 snake_case
-
先清理 CSV:刪除尾部空行,檢查各行的列數是否一致,並確保引用欄位使用雙引號以獲得最佳效果
-
與其他工具結合:在此處將 CSV 轉換為 JSON,然後使用 JSON 格式化器驗證和檢查結構
-
鍵盤捷徑:使用 Tab 鍵在欄位之間導航。當複製按鈕不可用時,按 Ctrl+A(Cmd+A)選擇輸出區域中的所有文字以快速複製
大檔案指南
CSV 轉 JSON 轉換器透過上傳介面處理最大 10MB 的檔案。超出該限制,或需要最佳效能時,請遵循以下指南。
上傳限制
| 方法 | 檔案大小限制 | 備註 |
|---|---|---|
| 拖放上傳 | 10 MB | FileReader 強制執行的硬性限制 |
| 貼到文字區域 | 瀏覽器記憶體 | 取決於可用 RAM,渲染較慢 |
| 開啟檔案對話框 | 10 MB | 相同的 FileReader 限制 |
按資料大小的效能
| 行數 | 列數 | 方法 | 預期時間 |
|---|---|---|---|
| 1,000 | 20 | 任意 | 即時 |
| 10,000 | 20 | 任意 | < 100 ms |
| 100,000 | 20 | 貼上文字 | < 1 秒 |
| 500,000 | 20 | 貼上文字 | 2-5 秒 |
處理大檔案
- 超過 10MB 的檔案:將內容直接貼到文字區域而不是上傳。文字區域繞過 FileReader 的大小限制,使用可用的瀏覽器記憶體
- 對於超過 100,000 行的檔案,考慮在轉換前將 CSV 分割成更小的區塊
- 即時預覽會隨著行數增加而變慢——對於大型資料集,保持預覽面板摺疊以停用預覽
- 型別推斷會增加處理開銷。如果只需要字串輸出,在處理大檔案時停用型別推斷以獲得更快的轉換速度
瀏覽器記憶體考量
每 MB 的 CSV 在轉換期間大約消耗 2-4 MB 的工作記憶體(輸入 + 解析結構 + JSON 輸出)。一個 10MB 的 CSV 檔案可能使用 30-40 MB 的瀏覽器記憶體。處理大檔案時,請關閉其他佔用大量記憶體的分頁。
替代方案
雖然 Toollect CSV 轉 JSON 轉換器提供了全面的功能集,但針對不同的使用場景也存在多種替代方案。
| 工具/方法 | 最適合 | 限制 |
|---|---|---|
| Toollect CSV 轉 JSON 轉換器 | 基於瀏覽器、隱私優先、可自訂的轉換 | 需要從網路載入初始頁面 |
| PapaParse(JavaScript 函式庫) | 在 Node.js 或瀏覽器應用程式中進行程式化 CSV 解析 | 需要編碼,無圖形介面 |
| csvkit(命令列) | 基於 Python 的 CSV 處理和轉換管道 | 需要安裝 Python,僅命令列 |
| 線上轉換服務 | 快速的一次性轉換 | 資料上傳到伺服器,隱私問題 |
| Excel Power Query | 在 Excel 內進行 CSV 轉 JSON 轉換 | 需要 Excel,限於較小資料集 |
| jq(命令列) | 處理來自 CSV 轉換的 JSON 輸出 | 需要單獨的 CSV 轉 JSON 步驟,僅命令列 |
對於大多數需要快速、私密且功能豐富的 CSV 轉 JSON 轉換而又不想離開瀏覽器的使用者來說,Toollect 轉換器提供了功能性和便利性的最佳平衡。
故障排除
| 問題 | 可能的原因 | 解決方案 |
|---|---|---|
| JSON 顯示"[null]"或空的物件 | 分隔符偵測失敗或選擇了錯誤的分隔符 | 從下拉選單中手動選擇正確的分隔符 |
| 列值遺失/偏移 | 欄位包含無引號的分隔符字元 | 在 CSV 來源中用雙引號括起包含分隔符的欄位 |
| 帶有前導零的數字丟失零 | 型別推斷將它們轉換為數值 | 停用型別推斷以將所有值保留為字串 |
| "第X行有Y列,預期Z列"錯誤 | 各行之間的列數不一致 | 檢查 CSV 中是否有額外/遺失的分隔符;帶換行符的引用欄位可能跨越多行 |
| 預覽顯示亂碼字元 | 檔案編碼不是 UTF-8 | 從試算表應用程式將 CSV 重新匯出為 UTF-8 |
| 大檔案上傳失敗 | 檔案超過 10MB 限制 | 將資料直接貼到文字區域而不是上傳 |
| JSON 輸出為空 | 輸入欄位為空或僅包含空白 | 確保 CSV 資料已正確貼上 |
| 複製按鈕無回應 | 瀏覽器剪貼簿權限 | 檢查瀏覽器設定;使用 Ctrl+C(Cmd+C)作為備用 |
技術規格
效能基準
| 資料大小 | 處理時間 | 記憶體使用 |
|---|---|---|
| 1 KB(10 行) | < 1 ms | < 1 MB |
| 100 KB(1000 行) | < 10 ms | < 5 MB |
| 1 MB(10000 行) | < 100 ms | < 50 MB |
技術細節
- 解析器:自訂 RFC 4180 相容 CSV 解析器,支援完整的引號/轉義處理
- 型別推斷:基於正規表示式偵測數字、布林值、null 值
- 分隔符偵測:對前 10 行進行啟發式評分,測試逗號/製表符/分號
- 輸出引擎:原生
JSON.stringify(),支援可設定縮排 - 檔案處理:
FileReaderAPI,10MB 大小限制 - 剪貼簿:
navigator.clipboard.writeText(),附 2 秒反饋指示器 - 下載:
Blob+URL.createObjectURL()用於記憶體中檔案生成
瀏覽器相容性
| 瀏覽器 | 最低版本 | 狀態 |
|---|---|---|
| Google Chrome | 80+ | 完全支援 |
| Mozilla Firefox | 75+ | 完全支援 |
| Apple Safari | 13+ | 完全支援 |
| Microsoft Edge | 80+ | 完全支援 |
| Samsung Internet | 13+ | 完全支援 |
| Opera | 67+ | 完全支援 |
功能特色
- 即時 CSV 轉 JSON 轉換,即時預覽
- 智慧型分隔符自動偵測,支援手動覆寫
- 數字、布林值和 null 值的型別推斷
- 多種輸出格式:物件陣列、二維陣列和鍵控物件
- 鍵大小寫轉換(camelCase、snake_case、lowercase、UPPERCASE、Capitalize)
- 可摺疊資料預覽,在轉換前驗證您的 CSV