工具用的順手嗎?
你的回饋能幫助我們做得更好
將 JSON 資料快速轉換為 SQL INSERT 語句,支援陣列和物件格式。
概覽
了解工具能解決的問題、計算或處理邏輯,以及資料邊界。
這個工具把單一 JSON 物件或由多個物件組成的陣列,轉成 SQL 文字。物件的鍵會成為欄位名稱;每個物件提供一列資料。輸出可包含 CREATE TABLE 建表語句,以及 INSERT 插入語句,適合先整理測試資料或檢視欄位草稿。它只產生文字,不會連線到資料庫執行 SQL。
JSON 是資料交換格式,值可包含字串、數字、布林值、null、物件與陣列。轉換時,工具會收集所有列出現過的鍵,依首次出現順序組成欄位;某一列沒有該鍵時,該列的插入值會寫成 NULL。JSON 的 null 也會輸出為 SQL NULL,不是字串 'null'。RFC 8259 說明 JSON 的資料型態與結構,見 RFC 8259。
可選 MySQL、PostgreSQL 或 SQLite。若開啟建表,工具會根據欄位值推估簡單型別:整數輸出為 INT,含小數的數字為 DOUBLE,布林值為 BOOLEAN;文字或序列化後超過 255 個字元的值分別使用 VARCHAR(255) 或 TEXT。如果混合文字與數字,欄位會採文字型別。欄位全為空值或缺漏時,則預設為 VARCHAR(255)。
物件與陣列型欄位值會先序列化成 JSON 文字,再放進該欄位的字串值;這不會將巢狀資料拆成多個關聯表。日期樣式的字串也只按一般文字處理,不會自動判斷成日期欄位。上述型別只是依目前樣本做的簡化推估,不代表正式資料庫結構設計。
表名和欄位名稱會依方言引用:MySQL 使用反引號,PostgreSQL 與 SQLite 使用雙引號;名稱內與引用符號相同的字元會加倍處理。字串值以單引號括住,值內的單引號會加倍。布林值在 MySQL、PostgreSQL 輸出 TRUE 或 FALSE,在 SQLite 輸出 1 或 0。官方文件可對照 MySQL 識別字規則、PostgreSQL 詞法結構及 SQLite 關鍵字與引用方式。
指南
依步驟完成操作,並透過範例核對輸入與結果。
輸入合法 JSON。單一物件代表一列;若要處理多列,請輸入物件陣列,例如 [{"id":1,"name":"小安"},{"id":2,"name":"小美"}]。陣列中的每一項都必須是物件;頂層字串、數字、null、巢狀陣列或混入非物件項目都會出現錯誤。
填入要使用的表名,並選 MySQL、PostgreSQL 或 SQLite。表名預設是 my_table。依需求決定是否產生 CREATE TABLE,以及是否把多列合併成同一個 INSERT ... VALUES;兩個選項預設都開啟。
查看欄位順序、型別、缺漏值與引號處理;確認符合目標資料庫版本與既有 schema 後,再複製輸出。可用範例按鈕載入兩筆簡單資料,觀察轉換結果。
情境
查看這項工具在不同工作與生活流程中的用法。
手上已有幾筆 API 範例或測試 JSON 時,可先產生建表與插入語句,檢視欄位集合和資料值,再依專案的正式 schema 補上主鍵、索引、限制條件或更合適的型別。
收到多筆物件資料,需要和同事確認資料欄位時,可用合併欄位的輸出查看哪些列缺少欄位。確認目標欄位是否允許空值後,再由負責資料庫的人員調整及執行。
用同一份小型樣本切換 MySQL、PostgreSQL 與 SQLite,觀察識別字引用和布林值表示方式。這有助於檢視輸出格式,但資料庫版本或 SQL 模式仍可能影響實際相容性。
問答
集中解答常見疑問與容易混淆的問題。
所有物件出現過的鍵都會列入欄位集合;缺少某欄位的列會插入 NULL。若資料表欄位設定為不可為空,請先補齊值或修改輸出定義。
不會。巢狀物件或陣列會序列化成 JSON 文字放在單一欄位,並不會轉成子表或展平欄位。
可以。關閉「生成建表語句」即可只輸出插入語句;反之,若仍需要 INSERT,可切換合併多列選項,選擇單一多列語句或每列各一條語句。
不會。結果是可複製的 SQL 文字,工具不會建立連線、建立資料表或寫入資料。
須知
使用前了解適用範圍、結果限制與必要提醒。
欄位型別只由目前樣本值作簡化推估;工具不會設計主鍵、索引、預設值、外鍵、欄位限制或完整業務 schema。請依資料庫版本、既有表格、欄位長度、數值範圍及 NULL 規則逐項檢查,特別留意識別字是否符合目標方言。產生 SQL 不等於使用參數化查詢:若在應用程式中處理使用者提供的值,請使用資料庫驅動的參數綁定,並先在安全的測試環境檢查輸出,再決定是否執行。
推薦
查找相關工具、專題與可用的 API 能力。