YamlBox

Codegeneratoren · 5 Min. gelesen

JSON bis SQL: von einer Nutzlast zu einer Tabelle, die Sie

Manchmal besteht der schnellste Weg von einer JSON-Datei zu einer SQL-Abfrage darin, daraus eine Tabelle zu erstellen. Durch die Konvertierung von JSON in SQL werden das Schema und die Zeilen in einem Schritt erstellt. Dies ist ideal für Fixtures, Scratch-Analysen und das Seeding einer lokalen Datenbank – vorausgesetzt, Sie halten es aus Ihrem Migrationsverlauf heraus.

Aktualisiert

Wie Typen von JSON bis SQL zugeordnet werden

  • Saiten → `TEXT` (`VARCHAR(n)`, wenn Sie das Längenbudget kennen).
  • Ganze Zahlen → `INTEGER` / `BIGINT`, Dezimalzahlen → `NUMERIC` statt Gleitkommazahlen, insbesondere für Geld.
  • Boolesche Werte → `BOOLEAN`.
  • Verschachtelte Objekte und Arrays → `JSONB` in PostgreSQL, `JSON` in MySQL 8 – oder normalisieren Sie sie in untergeordnete Tabellen, wenn die Daten erhalten bleiben.
  • Fehlende Schlüssel → Nullable-Spalten, niemals ein Standardwert, der einen Wert vortäuscht.

Eine generierte Tabelle ist ein guter Ausgangspunkt und eine schreckliche Migration. Schreiben Sie das gewünschte Schema und verwenden Sie dann das generierte SQL als Referenz für Spaltennamen und -typen.

Das Entkommen ist nicht optional

Zeichenfolgen in JSON enthalten regelmäßig Apostrophe – `O’Brien`, `it's done` – und wenn sie manuell in SQL eingefügt werden, beenden sie das Zeichenfolgenliteral vorzeitig und unterbrechen die Anweisung. Generierte INSERT-Anweisungen verdoppeln jedes Anführungszeichen korrekt, was die nützlichste Sache ist, die die Konvertierung für Sie bewirkt. Umfassen Sie bei Masseneinfügungen Zeilen in einer Anweisung, damit die Datenbank den Schreibvorgang stapelweise durchführen kann, anstatt pro Zeile einen Commit durchzuführen.

Gute Verwendung, schlechte Verwendung

Fixture-Daten für Tests, eine lokale Arbeitskopie eines API-Exports, das Seeding einer Demo-Umgebung und die Beantwortung einer einmaligen Frage in SQL – all das profitiert von einer JSON-zu-SQL-Konvertierung. Bei der Verwaltung des Produktionsschemas ist dies nicht der Fall: Migrationen erfordern eine Überprüfung, Indizes, Einschränkungen und einen Rollback-Pfad. Generieren Sie die Tabelle und schreiben Sie dann die Migration, die versendet wird, handschriftlich.

Arrays und Objekte: reduzieren oder speichern?

Wenn es sich bei einem Array um eine feste Liste von Skalaren handelt, vereinfacht eine untergeordnete Tabelle mit einem Fremdschlüssel die Abfragen. Wenn es sich um eine wirklich dynamische Nutzlast handelt – Webhook-Körper, Metadaten von Drittanbietern – ist die Speicherung als `JSONB` und die Indizierung der von Ihnen abgefragten Pfade die pragmatische Wahl. Entscheiden Sie, wie Sie die Abfrage durchführen möchten: Alles, was Sie filtern oder verknüpfen, gehört in eine Spalte.

Führen Sie es im Browser aus

Datenbankexporte und API-Dumps sind genau die Payloads, die nicht auf einen unbekannten Dienst hochgeladen werden sollten. Die Konvertierung von JSON in SQL erfolgt hier vollständig auf der Seite, sodass die von Ihnen kopierte Anweisung aus Daten erstellt wird, die Ihren Computer nie verlassen haben, und das Tool weiterhin offline funktioniert.

JSON bis SQL – häufig gestellte Fragen

Welchen SQL-Dialekt soll ich generieren?

Zielen Sie auf die Datenbank, mit der Sie es tatsächlich ausführen werden – PostgreSQL für `JSONB`, MySQL 8 für `JSON` und Backticked-Identifikatoren, SQLite für leichte lokale Arbeit. Die Anführungsregeln und Typnamen unterscheiden sich zwischen ihnen, sodass die Neugenerierung pro Dialekt besser ist als die manuelle Anpassung.

Kann ich JSON Arrays in eine einzelne SQL Spalte einfügen?

Ja, in Datenbanken mit einem Spaltentyp JSON: Das Array wird `JSONB` oder `JSON` und Sie fragen es mit Pfadoperatoren ab. Wenn Sie die Elemente verbinden oder aggregieren müssen, ist eine untergeordnete Tabelle das bessere Modell.

Ist das erzeugte SQL sicher vor Injektionen?

Generierte Anweisungen können Sie dort ausführen, wo Sie möchten, und Zeichenfolgenwerte werden als Literale maskiert. Sie sind kein Ersatz für parametrisierte Abfragen im Anwendungscode – erstellen Sie niemals Abfragen durch Verkettung auf einem Server.

In diesem Beitrag erwähnte Tools

Durchsuchen Sie die vollständige Liste der 19-Tools

Weitere Artikel zum Lesen

Alle 19 Beiträge →