SQL から JSON への変換(INSERT … VALUES)

SQL の INSERT 文を JSON に変換します。複数行の VALUES、引用符付き識別子、エスケープされた引用符、NULL、TRUE/FALSE、数値、複数テーブルに対応。無料です。

すべてブラウザ内で実行されます。データがアップロードされることはありません。

関連ツール

すべて表示

SQL から JSONとは?

データベースのダンプ、シードファイル、マイグレーションなど、INSERT 文を含む SQL を貼り付けると、行が JSON として得られます。各行は列名をキーとするオブジェクトになり、複数のテーブルへの INSERT はテーブルごとに 1 つの配列を持つオブジェクトになります。

SQL から JSONの使い方

  1. SQL 入力 に SQL を貼り付けるか、サンプルを読み込む や ファイルを開く を使います。
  2. MySQL のダンプでは 文字列内のバックスラッシュエスケープ (MySQL) をオンのままにし、標準 SQL や PostgreSQL ではオフにします。
  3. JSON の インデント を選びます。
  4. 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 を実行しないため、式はソースのテキストのまま保持されます。

おすすめの次のステップ

他のカテゴリを見る