如果這個工具幫到了你,可以請作者喝杯咖啡 ☕
將 JSON 資料快速轉換為 SQL INSERT 語句,支援陣列和物件格式。
場景一:後端開發人員——你從某個 API 介面拿到了 JSON 格式的使用者列表(比如 [{"id":1,"name":"張三"},{"id":2,"name":"李四"}]),需要把它們批次插入到 MySQL 的 users 表中。手工拼寫 INSERT 語句既枯燥又容易出錯,用這個工具貼上 JSON 就能直接拿到可執行的 SQL。
場景二:資料分析師——你在分析客戶資料時,需要把配置檔案裡的引數列表(JSON 陣列)寫入資料庫作為初始化指令碼。使用工具後,複製生成的 INSERT 語句到 SQL 客戶端,一步到位。
場景三:網站遷移——匯出舊系統的 JSON 格式資料(比如文章、分類),透過工具生成 INSERT 語句直接匯入新庫,避免編寫繁瑣的中間指令碼。
核心邏輯很簡單:把 JSON 物件的鍵(key)作為 SQL 表的列名,把對應的值(value)作為 INSERT 語句裡的值。如果 JSON 是一個數組,每個元素生成一條 INSERT 語句;如果是一個物件,生成單條語句。工具會自動處理資料型別:數字直接寫,字串加單引號並轉義內部的單引號,布林值轉為 1 或 0,空值 null 轉為 SQL 的 NULL。
假設你有這樣一個物件 {"name": "O'Brien", "age": 30},SQL 會變成:INSERT INTO mytable (name, age) VALUES ('O''Brien', 30)——單引號被正確轉義。
我們在工具左側的「JSON 輸入」框裡貼上以下資料:
[
{"id": 1, "name": "張偉", "score": 85.5},
{"id": 2, "name": "王芳", "score": 92.0},
{"id": 3, "name": "李娜", "score": null}
]然後在「表名」輸入框裡填入 students。點選「轉換」按鈕,右側輸出區域顯示:
INSERT INTO students (id, name, score) VALUES (1, '張偉', 85.5);
INSERT INTO students (id, name, score) VALUES (2, '王芳', 92.0);
INSERT INTO students (id, name, score) VALUES (3, '李娜', NULL);解讀:生成的 SQL 可以直接在 MySQL 或 PostgreSQL 中執行(前提是學生表已經存在)。注意 NULL 不需要加引號,工具自動處理了。每條語句末尾有分號,方便複製貼上。
假設 JSON 是:
[
{"title": "It's a test", "published": true},
{"title": "Say "Hello" ", "published": false}
]表名填 articles,轉換結果:
INSERT INTO articles (title, published) VALUES ('It''s a test', 1);
INSERT INTO articles (title, published) VALUES ('Say "Hello" ', 0);注意:字串裡的單引號被轉義成兩個單引號(SQL 標準做法),雙引號保持原樣。布林值 true 變為 1,false 變為 0。如果你的資料庫不支援這種布林表示,可以手動調整。
工具生成的 SQL 通常符合 ANSI SQL 標準,可以直接在 MySQL、PostgreSQL、SQLite 等資料庫中使用。檢查以下幾點確認無誤:
INSERT INTO ... VALUES (...), (...) 格式(工具不支援合併,需要自己複製貼上調整)。table 作為表名,很容易導致語句無效。每次一定要在表名框裡輸入正確的名字。name 但第二個沒有),工具會取所有 key 的並集,缺失值用 NULL 填充。這可能導致目標表不允許 NULL 時插入失敗。{"address": {"city": "北京"}}),生成的 SQL 會直接寫 [object Object],這是錯誤資料。你需要先把巢狀物件拍平成平鋪鍵。1. 僅處理平鋪 JSON:不支援巢狀物件或陣列巢狀,如果需要多層結構,請先用其他工具展平。2. 輸入大小限制:瀏覽器環境下,傳給工具的 JSON 字串長度受記憶體限制,建議單次不超過 10MB,否則頁面可能變慢或崩潰。3. 輸出語法偏 MySQL:雖然基礎語法通用,但 MySQL 的布林值用 1/0 表示,PostgreSQL 可以使用 TRUE/FALSE 關鍵字。如果你用 PostgreSQL,需要手動替換 1 和 0 為布林值。4. 無 DDL 支援:工具只生成 INSERT 語句,不會建立表。你必須先手動建好表結構。
Q:工具能處理單個 JSON 物件嗎?
可以。如果輸入的是 {"a":1,"b":2},會生成一條 INSERT 語句。
Q:JSON 中的日期怎麼處理?
日期字串會被當作普通字串(加單引號)。如果你資料庫的該列是日期型別,字串格式必須匹配資料庫的格式(如 '2023-10-01')。
Q:能不能生成 REPLACE INTO 或 UPDATE 語句?
當前僅生成 INSERT,其他型別的 SQL 請手動修改。
Q:為什麼生成的 SQL 末尾沒有分號?
工具預設每條語句尾部加分號,但你可以批次複製後自行新增或去除。
Q:JSON 陣列裡混入了其他型別(比如字串)怎麼辦?
工具會跳過非物件元素(比如數字、字串),只處理物件。如果全是非物件,輸出為空。
Q:這個工具需要聯網嗎?
不需要,所有轉換在瀏覽器本地完成,資料不會上傳到伺服器,可以放心使用。
現在你可以在上方計算器裡貼上自己的 JSON,試試效果。