technine.io

工具

CSV 轉 JSON 工具

在瀏覽器把支援引號欄位的 CSV 轉成物件陣列、列陣列或 JSON Lines,標題、分隔符號及資料類型均由你決定。

檔案及貼上的資料只會在此瀏覽器內處理,不會傳送到轉換伺服器、加入網址或寫入瀏覽器儲存空間。

來源資料

將檔案拖到這裏

單一檔案上限為 10 MB,貼上的 UTF-8 文字上限為 1 MB。結果最多可有 100,000 筆記錄、250 欄及 1,000,000 個儲存格。預覽顯示 100 行 × 30 欄。

輸入及資料形狀設定

工具會按 BOM 辨認 UTF-8 及 UTF-16。檔案未有 BOM 時會嚴格按 UTF-8 解碼;只有解碼失敗才需要選擇舊式編碼。

JSON 輸出

轉換前,工具會先把 CSV 按列解析,因此空白標題、重複標題及欄數不一都不會被遮住。假設標題是 id,name,下一列是 001,"Lee, Ada",使用物件輸出時可得到 [{"id":"001","name":"Lee, Ada"}]。預設把 001 保留為文字,避免識別編號在不知情下變成數字 1。

使用方法

  1. 選取不超過 10,000,000 bytes 的檔案,或貼上最多 1,000,000 UTF-8 bytes。確認所需的舊式編碼,以及逗號、Tab、分號或直線分隔符號。
  2. 設定第一筆記錄是否標題。物件形式的輸出不接受空白或重複標題;你要先選擇修剪標題、以 column_N 填補空白,或用不衝突的後綴區分重複名稱。
  3. 選擇物件陣列、列陣列或 JSON Lines。CSV 欄位預設全部保留為字串;如啟用保守類型判斷,工具只會處理完全符合規則的小寫布林值、null 及有限數字。
  4. 核對表格形狀、被判斷類型的數值及輸出大小。1,000,000 bytes 以內可複製,50,000,000 bytes 以內的有效 JSON 可下載;只有標題而沒有資料時,物件輸出可以是空陣列。

適用情況

把試算表資料交給 API
以標題建立物件 key,每筆資料成為一個 JSON 物件;預設不會令有前置零的識別編號變形。
轉換開放資料供程式使用
按指定分隔符號讀取包含引號欄位的檔案,再下載可由應用程式解析的 JSON 陣列。
建立逐列 JSON Lines
先處理標題及表格形狀,再為接受 NDJSON 的流程輸出每行一個物件。
保留沒有標題的列資料
第一筆記錄也是資料時,可選列陣列,毋須為表格虛構物件 key。

支援範圍及限制

  • 輸入、表格、欄位、預覽及輸出上限與 CSV 清理工具相同:檔案 10,000,000 bytes、貼上文字 1,000,000 UTF-8 bytes、100,000 筆記錄(包括標題)、250 欄、1,000,000 個儲存格、單一欄位 1,000,000 個解碼字元,以及 50,000,000 輸出 bytes。
  • 物件形式的 JSON 需要有效而不重複的標題。空白或重複名稱不會被靜默刪除或覆蓋,必須先由你選擇修補方法。
  • 所有 CSV 欄位預設保留為字串。保守類型判斷不會處理日期、空值、NaN、Infinity、不安全整數、有前置零的數字,或超過 15 個有效數字的候選值。
  • 類型判斷仍會改變意思:false 會成為布林值,null 會成為 null,而 1e3 會成為數字。下載前應檢查工具標出的轉換。
  • 工具預設要求每列欄數相同。選擇補成矩形後,短列會補空值,需要時亦會為額外欄位建立標題,但工具無法知道缺少的內容原本應是甚麼。
  • JSON 不會記錄來源 CSV 的空白、引號寫法、分隔符號及換行。日後把 JSON 轉回 CSV,不能還原成完全相同的原檔。
  • CSV 只有標題而沒有資料時,物件形式可產生 []。空白輸入、CSV 格式錯誤、編碼無效、引號不完整、NUL 資料或超出限制時,都不會提供下載。
  • 轉換在此瀏覽器進行,檔案、貼上的 CSV、檔案名稱、標題及 JSON 輸出不會傳送到轉換伺服器。瀏覽器擴充功能、剪貼簿記錄、畫面分享及下載檔案仍要自行留意。

常見問題

CSV 標題如何變成 JSON key?

啟用「第一筆記錄作標題」後,每個標題欄位會成為 key,之後每筆記錄成為一個物件。空白或重複標題必須先明確修補,才可輸出物件或 JSON Lines。

數字及布林值會否自動轉換?

不會。所有欄位預設保留為字串,所以 001 仍是「001」。保守類型判斷只處理完全相符的小寫 true、false、null、沒有前置零的安全整數,以及不超過 15 個有效數字的有限小數或指數寫法。

可以輸出列陣列而非物件嗎?

可以。列陣列按原有次序保存表格,不需要標題。第一筆記錄本身是資料,或你要保留重複標題時,這種輸出會較合適。

工具支援引號內的逗號、分隔符號及換行嗎?

支援,但 CSV 引號格式必須有效。雙引號欄位可包含所選分隔符號、成對雙引號及 CRLF、LF 或 CR 換行,轉換後會成為 JSON 字串內容。

CSV 各列長度不同時會怎樣?

嚴格形狀是預設設定,工具會指出受影響的記錄編號並阻止輸出。你可選擇補成矩形:短列補空值,額外欄位全部保留,而物件輸出需要時會建立新標題。

可以建立 JSON Lines 或 NDJSON 嗎?

可以。JSON Lines 每個非空白行輸出一個物件,因此必須有有效而不重複的標題。此版本不會輸出逐行列陣列。

CSV 轉 JSON 再轉回去,會否與原檔完全一樣?

不會。JSON 不保留原有分隔符號、引號格式、換行或標題排版;如啟用類型判斷,部分字串亦會變成其他資料類型。每次轉換都應視為表格的另一種表示方式。

工具會否上載 CSV?

不會。解碼、解析及轉換都在此瀏覽器的頁面 Worker 進行。工具不會傳送或儲存檔案、檔案名稱、CSV 內容、標題、錯誤片段或輸出。

諮詢WhatsApp