Wie JSON auf relationale Tabellen abgebildet wird
Ein JSON-Array von Objekten bildet sich natürlich auf eine relationale Tabelle ab: Jedes Objekt wird zu einer Zeile, jeder eindeutige Schlüssel zu einer Spalte. Der Konverter durchsucht jedes Objekt im Array nach allen unterschiedlichen Schlüsseln und erstellt dann eine CREATE TABLE-Anweisung, deren Spalten die vollständige Vereinigung der gefundenen Schlüssel abdecken.
Die Typinferenz liest die JSON-Werttypen: Zeichenketten werden zu VARCHAR oder TEXT, Zahlen zu INT oder FLOAT je nach Dezimalpunkt, Booleans zu TINYINT(1) oder BOOLEAN, und null-Werte werden als nullable markiert. Verschachtelte Objekte oder Arrays werden in eine JSON-Spalte serialisiert, damit keine Daten verloren gehen.
Falls Ihre JSON-Wurzel ein einzelnes Objekt statt eines Arrays ist, umschließt das Werkzeug es mit einem Array und generiert eine INSERT-Zeile. So können Sie beliebige JSON-Formen ohne manuelle Vorverarbeitung konvertieren.
Dialektunterschiede und Optionen
MySQL verwendet Backtick-Bezeichner und TINYINT(1) für Booleans. PostgreSQL verwendet doppelte Anführungszeichen, nativen BOOLEAN und SERIAL für Auto-Increment. SQLite verwendet dynamische Typisierung mit TEXT/INTEGER/REAL/NUMERIC-Affinität. SQL Server verwendet eckige Klammern und BIT für Booleans. Wählen Sie Ihre Zieldatenbank vor der Generierung aus dem Dialekt-Dropdown.
Der Tabellenname lautet standardmäßig "data", kann aber angepasst werden. Sie können wählen, ob nur INSERT-Anweisungen (nützlich wenn die Tabelle bereits existiert), nur das CREATE TABLE DDL oder beides zusammen ausgegeben wird. Der INSERT-Modus unterstützt mehrzeilige INSERT-VALUES-Syntax für Datenbanken, die dies unterstützen, oder einzelne INSERTs für maximale Kompatibilität.
Zeichenkettenwerte werden automatisch escaped: einfache Anführungszeichen werden verdoppelt und Backslash-Sequenzen dialektgerecht behandelt. Numerische und boolesche Werte werden ohne Anführungszeichen ausgegeben. JSON-null-Werte werden zu SQL NULL.
Praktische Anwendungsfälle
Das Befüllen einer Entwicklungsdatenbank aus einer JSON-Fixture-Datei ist einer der häufigsten Arbeitsabläufe. Exportieren Sie Daten aus einer API, fügen Sie das JSON ein und erhalten Sie INSERT-Anweisungen, die Sie direkt in Ihrem SQL-Client ausführen oder in ein Migrationsskript einbinden können.
Datenmigrationsprojekte beinhalten oft das Verschieben von Datensätzen zwischen Systemen. Das Konvertieren des JSON-Exports eines Systems in SQL ermöglicht den Import in eine relationale Datenbank ohne eigenen ETL-Code.
Schema-Erkundung ist ein weiterer Vorteil: Das automatisch generierte CREATE TABLE liefert einen ersten Entwurf des Schemas aus echten Daten, den Sie mit Primärschlüsseln, Indizes und Constraints verfeinern können.