SQL から JSON への変換(INSERT … VALUES)
SQL の INSERT 文を JSON に変換します。複数行の VALUES、引用符付き識別子、エスケープされた引用符、NULL、TRUE/FALSE、数値、複数テーブルに対応。無料です。
すべてブラウザ内で実行されます。データがアップロードされることはありません。
関連ツール
すべて表示SQL から JSONとは?
データベースのダンプ、シードファイル、マイグレーションなど、INSERT 文を含む SQL を貼り付けると、行が JSON として得られます。各行は列名をキーとするオブジェクトになり、複数のテーブルへの INSERT はテーブルごとに 1 つの配列を持つオブジェクトになります。
SQL から JSONの使い方
- SQL 入力 に SQL を貼り付けるか、サンプルを読み込む や ファイルを開く を使います。
- MySQL のダンプでは 文字列内のバックスラッシュエスケープ (MySQL) をオンのままにし、標準 SQL や PostgreSQL ではオフにします。
- JSON の インデント を選びます。
- JSON の出力は入力に合わせて更新されます。コピー または ダウンロード を使います。
例
INSERT INTO users (id, name) VALUES (1, 'O''Brien'), (2, NULL);
[
{
"id": 1,
"name": "O'Brien"
},
{
"id": 2,
"name": null
}
] SQL から JSONを使うべき場面
データベースを動かさずに、SQL のダンプやシードファイルからデータを取り出すときに使います。SQL は実行しません。SELECT、UPDATE、DDL 文は無視され、関数も評価されません。
SQL から JSONの仕組み
トークナイザーが、文字列('' の二重引用符、任意の MySQL バックスラッシュエスケープ、N'…' や E'…' の接頭辞)、引用符付き識別子("…"、バッククォート、[…])、数値、コメント(--、#、/* */)を読み取ります。その後パーサーが INSERT [IGNORE] INTO table [(columns)] VALUES (…), (…) を探し、それ以外の文はすべてスキップします。NULL、TRUE、FALSE は JSON の null と真偽値に対応付けられ、JavaScript で扱えない大きさの整数は正確に保持されます。NOW() のような式はソースのテキストのまま残ります。列リストのない行のキーは column1、column2、… になります。
一般的な使用例
- mysqldump の抜粋を JSON のテストデータに変換する
- マイグレーションファイルのシードデータを確認する
- SQL の数行を NoSQL のストアに移す
- INSERT 文に実際にどんな値が入っているかを確認する
よくある質問
どの SQL 方言が使えますか?
MySQL/MariaDB、PostgreSQL、SQLite、SQL Server の INSERT 構文です。それぞれの識別子の引用方法はすべて認識されます。Windows のパスを含む MySQL 以外のダンプでは、バックスラッシュエスケープをオフにしてください。
INSERT … SELECT はどうなりますか?
リテラルのデータを含むのは VALUES リストだけなので、INSERT … SELECT 文はスキップされます。
NOW() が文字列になるのはなぜですか?
このツールは SQL を実行しないため、式はソースのテキストのまま保持されます。