Skip to main content
CheckTown
Konverter

JSON-zu-SQL-Converter: INSERT-Anweisungen generieren

Veröffentlicht 5 Min. Lesezeit
In diesem Artikel

Warum JSON in SQL konvertieren?

JSON ist das Standardformat für APIs, Konfigurationsdateien und den Datenaustausch, doch relationale Datenbanken sprechen SQL. Wenn Sie JSON-Daten in MySQL, PostgreSQL, SQLite oder SQL Server importieren möchten, benötigen Sie INSERT-Anweisungen. SQL für Hunderte oder Tausende von Datensätzen von Hand zu schreiben, ist mühsam und fehleranfällig.

Ein JSON-zu-SQL-Konverter automatisiert dies, indem er Ihre JSON-Struktur analysiert, Spaltentypen ableitet und gültige, ausführbare INSERT-Anweisungen erzeugt. Das ist nützlich, um Entwicklungsdatenbanken zu befüllen, Daten zwischen Systemen zu migrieren und API-Antworten zur Analyse in eine relationale Datenbank zu importieren.

So funktioniert der Konverter

Der Konverter analysiert Ihr JSON-Array von Objekten und wandelt jedes Objekt mit korrekter Typbehandlung in eine SQL-INSERT-Anweisung um.

  • Strukturanalyse -- untersucht alle Objekte, um die vollständige Menge der Schlüssel zu erfassen, da unterschiedliche Objekte verschiedene Eigenschaften haben können
  • Typerkennung -- leitet die SQL-Spaltentypen aus den JSON-Werten ab: Strings werden zu VARCHAR oder TEXT, Zahlen zu INT oder DECIMAL, Booleans zu BOOLEAN, und Null-Werte bleiben als NULL erhalten
  • SQL-Generierung -- erzeugt INSERT INTO-Anweisungen mit korrekt in Anführungszeichen gesetzten Werten, escapten Strings und korrekter NULL-Behandlung für den Dialekt der Zieldatenbank

Kostenlos testen – keine Registrierung erforderlich

JSON in SQL konvertieren →

Optionen erklärt

Der Konverter bietet mehrere Optionen, um die erzeugte SQL-Ausgabe für verschiedene Datenbanksysteme und Anwendungsfälle zu steuern.

  • CREATE TABLE -- erzeugt optional vor den INSERT-Anweisungen eine CREATE TABLE-Anweisung mit abgeleiteten Spaltentypen, nützlich, um Tabelle und Datenimport in einem Schritt zu erledigen
  • Batch-INSERT -- fasst mehrere Zeilen in einer einzigen INSERT-Anweisung mit Mehrfachwert-Syntax zusammen (INSERT INTO table VALUES (...), (...), (...)), für bessere Performance beim Import großer Datenmengen
  • Bezeichner-Quoting -- steuert, wie Tabellen- und Spaltennamen in Anführungszeichen gesetzt werden: Backticks für MySQL, doppelte Anführungszeichen für PostgreSQL und Standard-SQL oder eckige Klammern für SQL Server
  • Tabellenname -- ermöglicht die Angabe des Ziel-Tabellennamens anstelle eines Standardwerts, sodass das erzeugte SQL sofort gegen Ihr tatsächliches Datenbankschema ausführbar ist

Häufig gestellte Fragen

Wie ordnet der Konverter JSON-Typen den SQL-Typen zu?

JSON-Strings werden je nach Länge auf VARCHAR(255) oder TEXT abgebildet. JSON-Zahlen werden bei Ganzzahlen auf INT und bei Zahlen mit Dezimalstellen auf DECIMAL abgebildet. JSON-Booleans werden auf BOOLEAN (oder TINYINT(1) bei MySQL) abgebildet. JSON-Null-Werte ergeben NULL in der SQL-Ausgabe. Verschachtelte Objekte und Arrays werden als JSON-Strings in der SQL-Spalte serialisiert.

Wie werden NULL-Werte behandelt?

Sowohl JSON-Null-Werte als auch fehlende Schlüssel ergeben SQL-NULL-Werte in den INSERT-Anweisungen. Der Konverter prüft jedes Objekt auf fehlende Eigenschaften und füllt sie mit NULL auf, damit alle INSERT-Anweisungen dieselbe Anzahl an Spalten haben. Das entspricht dem Standard-SQL-Verhalten, bei dem NULL bedeutet, dass der Wert unbekannt oder nicht anwendbar ist.

Wie werden Strings mit Sonderzeichen escapt?

Strings, die einfache Anführungszeichen enthalten, werden durch Verdoppeln des Anführungszeichens escapt ('O''Brien'). Backslashes, Zeilenumbrüche und andere Sonderzeichen werden gemäß dem Ziel-SQL-Dialekt behandelt. Das verhindert SQL-Injection in den erzeugten Anweisungen und stellt sicher, dass das SQL syntaktisch gültig ist.

Kann er verschachtelte JSON-Objekte verarbeiten?

Verschachtelte Objekte und Arrays innerhalb Ihrer JSON-Daten werden als JSON-Strings in der entsprechenden SQL-Spalte serialisiert. Wenn Sie verschachtelte Daten in separaten Tabellen mit Fremdschlüsselbeziehungen benötigen, müssten Sie die JSON-Struktur zunächst abflachen oder ein spezialisierteres ETL-Werkzeug verwenden. Der Konverter bildet eine Ebene von Objekten auf SQL-Zeilen ab.

Verwandte Tools