SQL → JSON コンバーター
INSERT 文か結果セットを貼り付けてください。JSON 配列が返ります。
このツールができること
マイグレーションや pg_dump の出力から INSERT 文を大量に取り出してきて、API シードやフィクスチャ用に JSON が欲しい — そんな場面を、貼り付け一発で片付けます。SELECT ... FOR JSON で抜き直すためだけにダンプを DB に読み込む必要はありません。
このツールは INSERT INTO table (col, col, ...) VALUES (...) の文 — マルチ行 INSERT も含む — を読み取り、各行を列名をキーとする JSON オブジェクトとして、JSON 配列で出力します。ISO SQL がカバーする標準方言と、PostgreSQL、MySQL、SQLite、SQL Server でよく見る派生構文に対応しています。
値の型は期待どおりに推論されます。整数や小数のリテラルは数値のまま、クォートで囲まれた文字列はそのまま文字列、NULL は JSON の null、TRUE/FALSE はブール値になります。日付・時刻のリテラル('2024-01-15'、'2024-01-15 10:30:00')は ISO-8601 の文字列として出力されます。複数のテーブルへの INSERT を貼り付けた場合は、テーブルごとに出力のキーが分かれ、その配下に JSON 配列として行が入ります。
使い方
3 ステップです。3 行でも 3,000 行でも、やることは同じ。
SQL を貼り付け(またはサンプルを試す)
左側のエディタに INSERT 文を入れてください。単一 INSERT、マルチ行 INSERT、複数テーブルへの INSERT — どれでも OK です。サンプルを読み込む をクリックすると、orders と items の現実的な例が出ます。
SQL はそのままで大丈夫です — 末尾のセミコロン、インラインコメント(-- や /* ... */)、スキーマ修飾(public.orders)もすべて正しくパースされます。
変換をクリック
緑色の 変換 ボタンをクリックします。ツールがすべての INSERT を読み取り、値と列名を対応付けて、一度の処理で JSON を組み立てます。
JSON をコピー
右パネルに JSON 配列(複数テーブルのダンプなら配列のオブジェクト)が表示されます。API シード、Jest のフィクスチャ、静的モックサーバーにそのまま貼れます。
実際に役立つ場面
既存ダンプからのシード作成
<code>mysqldump</code> や <code>pg_dump</code> のファイルはあるけれど、旧 DB と直接は話さない新しいアプリ用の JSON シードが欲しい。INSERT を貼り付けて、JSON を受け取るだけ。
テスト用フィクスチャの作成
本番から数行を INSERT 文の形で(機微な情報は除いて)持ってきて、統合テストや Storybook のモック用に JSON フィクスチャへ変換します。
API のシードファイル
新しいマイクロサービスは JSON でシードされる想定だけれど、データはモノレポ内に SQL インサートとして置かれている。貼り付け 1 回でシードファイルができあがります。
フロントエンドチームへのデータ受け渡し
フロントチームが新しい画面用のサンプルデータを欲しがっている。こちらには SQL がある。JSON に変換してモックレスポンスとして相手のリポジトリに置けます。
よくある質問
対応している SQL の方言は?
共通部分はすべて対応しています。PostgreSQL、MySQL/MariaDB、SQLite、SQL Server の INSERT 構文。PostgreSQL の E'...' エスケープや、MySQL のバッククォート識別子といった方言固有の作法もちゃんと処理されます。
マルチ行 INSERT には対応していますか?
はい — INSERT INTO orders (id, total) VALUES (1, 9.99), (2, 15.50), (3, 42.00); は 3 要素の JSON 配列として出力され、1 行につき 1 オブジェクトです。
複数テーブルへの INSERT はどうなりますか?
各テーブルは出力 JSON の独立したキーになり、その下に行が JSON 配列で並びます。orders と order_items に挿入するマイグレーションなら {"orders": [...], "order_items": [...]} の形で返ります — リレーショナル構造を保ちたいシードファイルに便利です。
NULL、日付、ブール値はどう扱われますか?
NULL は JSON の null になります。TRUE/FALSE(スキーマを推論できない場合は 0/1)はそれぞれ JSON のブール値または数値になります。日付リテラルは RFC 3339 に従って ISO-8601 文字列として出力されます。
SQL を実行しますか?
いいえ — データベースに対して何も実行しません。ツールは INSERT 構文をパースして JSON を生成するだけです。データが変換リクエストの外に出ることはありません。
SELECT の結果セットはどうですか?
整形された結果セット(列ヘッダーと行)を貼り付けてもらえれば、できる限り JSON 配列として出力します。ただ列名が明示的な分、INSERT 構文のほうが確実です。可能なら INSERT を使ってください。
一緒に使えるツール
SQL → JSON は他のツールと組み合わせるとさらに便利です: