JSON zu SQL nimmt ein Array von Objekten — eine API-Antwort, einen Export, eine Fixture-Datei — und erzeugt die zwei Anweisungen, die es in eine Datenbank bringen: ein CREATE TABLE, dessen Spaltentypen aus sämtlichen Werten jeder Spalte abgeleitet werden, und INSERTs, gebündelt zu mehrzeiligen VALUES-Listen. Die Typableitung ist sauber gemacht: Ganzzahlen über 32 Bit werden BIGINT, ISO-formatierte Strings TIMESTAMP, gemischte Spalten degradieren sicher zu TEXT, und jeder kanonische Typ erscheint in der Schreibweise des Zieldialekts — BOOLEAN kommt in MySQL als TINYINT(1) an, in SQL Server als BIT. Die Details, die Handskripte zerbrechen, sind genau der Punkt: Bezeichner werden je Dialekt gequotet, damit eine Spalte namens order nie mit dem Schlüsselwort kollidiert, einfache Anführungszeichen verdoppeln sich, damit O’Brien überlebt, fehlende Schlüssel werden NULL, und verschachtelte Objekte landen als JSON-Text.
Funktionen
CREATE TABLE mit Typen aus allen Zeilen, nicht nur der ersten
Mehrzeilige INSERTs mit einstellbarer Batchgröße
Dialekte: PostgreSQL, MySQL, SQLite und SQL Server
Bezeichner-Quoting je Dialekt — reservierte Wörter sicher
Das verdoppelte Anführungszeichen in O’’Brien hält das Skript gültig.
Häufige Fehler & Fehlerbehebung
Eine numerisch wirkende Spalte wurde TEXT. — Irgendein Wert der Spalte ist ein String — "42" mit Anführungszeichen, ein Leerstring oder ein N/A. Die Ableitung prüft jede Zeile und degradiert bei jedem Konflikt zu TEXT.
Das Skript scheitert an einer Spalte namens order oder user. — Sollte es nicht — Bezeichner werden je Dialekt genau dafür gequotet. Falls doch: Prüfe, ob der Dialekt zur Datenbank passt — Backticks sind MySQL, eckige Klammern SQL Server.
Datumswerte wurden als Text importiert. — Nur ISO-8601-Formen (2024-01-15, optional mit Zeit) werden TIMESTAMP. Lokale Formate wie 15.01.2024 sind mehrdeutig und bleiben absichtlich TEXT.
Häufig gestellte Fragen
Wie werden Spaltentypen aus JSON abgeleitet?
Jeder Wert der Spalte stimmt ab: Ganzzahlen ergeben INTEGER (BIGINT über 32 Bit), jede Dezimalzahl macht DOUBLE PRECISION, true/false BOOLEAN, ISO-Datumsstrings TIMESTAMP, jeder Konflikt endet in TEXT. Alle Zeilen werden geprüft.
Was ändert sich zwischen den SQL-Dialekten?
Das Bezeichner-Quoting (doppelte Anführungszeichen, Backticks, eckige Klammern), die Typ-Schreibweisen (BOOLEAN gegen TINYINT(1) gegen BIT), die Boolean-Literale (TRUE gegen 1) und das N-Präfix, das SQL Server bei Unicode-Text will.
Was passiert mit Objekten unterschiedlicher Schlüssel?
Die Spalten sind die Vereinigung aller Schlüssel in Auftrittsreihenfolge; Zeilen ohne einen Schlüssel fügen dort NULL ein. Genau so müssen heterogene API-Daten meist in einer Tabelle landen.
Ist das erzeugte Skript produktionsreif?
Es ist importbereit: sicheres Quoting und vernünftige Typen. Eine Produktionstabelle verdient zusätzlich Primärschlüssel, NOT NULL und Indizes — das kann keine Ableitung aus Daten erraten.
Verwandte Tools
CSV zu SQL — Eine CSV in INSERT-Statements für MySQL, PostgreSQL, SQLite oder SQL Server verwandeln.
JSON zu CSV — Konvertiere ein Array flacher JSON-Objekte in CSV.
JSON-Formatierer — JSON verschönern, minimieren und validieren – mit Fehlerposition.
JSON zu TypeScript — Erzeuge TypeScript-Interfaces aus einer JSON-Probe.
JSON Flatten / Unflatten — Flache verschachteltes JSON zu Schlüsseln in Punktnotation, oder mach es wieder rückgängig.