Zum Inhalt springen

JSON in PostgreSQL umwandeln

Leg deine JSON-Datei ab und erhalte ein PostgreSQL-Skript mit CREATE TABLE- und INSERT-Anweisungen. Jede Spalte bekommt einen Typ, und jede Korrektur wird mit Zeile und Spalte aufgeführt.

Deine Datei
jsonpedidos_2024.jsonBeispieldatei, 771 B
Deine Datenbank

4 Zeilen konvertiert, 2 Korrekturen, keine abgelehnt

Anzeigen
Die ersten Zeilen von pedidos_2024.json, jede Korrektur markiert
Zeile
2000481Peña Muñoz2024-02-03T10:15:00Z1234.5true
3000482José Ángel Ruiz2024-02-15T16:40:00Z99.9falseEntrega en la tarde
4000483Zoë Ortíz2024-02-29T09:05:00Z12true
5000484Ñuño Castañeda2024-03-11T13:30:00Z980.75síFactura con "RFC"
-- Written by IntoSQL for PostgreSQL.

SET client_encoding = 'UTF8';
BEGIN;

CREATE TABLE pedidos_2024 (
    pedido text NOT NULL,
    cliente text NOT NULL,
    fecha timestamptz NOT NULL,
    total numeric(6,2) NOT NULL,
    pagado boolean NOT NULL,
    notas text
);

INSERT INTO pedidos_2024 (pedido, cliente, fecha, total, pagado, notas) VALUES
('000481', 'Peña Muñoz', '2024-02-03 10:15:00+00:00', 1234.5, TRUE, NULL),
('000482', 'José Ángel Ruiz', '2024-02-15 16:40:00+00:00', 99.9, FALSE, 'Entrega en la tarde'),
('000483', 'Zoë Ortíz', '2024-02-29 09:05:00+00:00', 12, TRUE, NULL),
('000484', 'Ñuño Castañeda', '2024-03-11 13:30:00+00:00', 980.75, TRUE, 'Factura con "RFC"');

COMMIT;

Korrekturen

  1. Führende Nullen in "pedido" behalten: 000481 bleibt 000481, gespeichert als Text.
  2. "pagado" enthält Ja- und Nein-Wörter (sí), gespeichert als Boolean.

Deine Datei wird auf diesem Computer umgewandelt und nie hochgeladen.

Weitere Beispiele:

Von JSON zu PostgreSQL, Spalte für Spalte

Das Beispiel oben, pedidos_2024.json, so wie IntoSQL es für PostgreSQL schreibt: was jede Spalte in der Datei enthält, welchen Typ sie bekommt und wie ihr erster Wert im Skript landet.

In der DateiErster WertSpalteTyp in PostgreSQLIm Skript
pedido000481pedidotext'000481'
clientePeña Muñozclientetext'Peña Muñoz'
fecha2024-02-03T10:15:00Zfechatimestamptz'2024-02-03 10:15:00+00:00'
total1234.5totalnumeric(6,2)1234.5
pagadotruepagadobooleanTRUE
notas-notastextNULL

Das Skript in PostgreSQL laden

Der Download ist eine einfache .sql-Datei. Führe sie mit den Werkzeugen von PostgreSQL aus.

Aus einem Terminal

psql -v ON_ERROR_STOP=1 -d mydb -f pedidos_2024.postgresql.sql

ON_ERROR_STOP lässt psql beim ersten Fehler anhalten. Das Skript läuft in einer Transaktion, ein fehlgeschlagener Import lässt die Datenbank also unverändert.

Aus einem Datenbank-Tool

Öffne das Skript in pgAdmin oder DBeaver in einem Abfragefenster und führe es aus.

Ohne SkriptPro

IntoSQL Pro lädt die Datei aus der Desktop-App oder der Kommandozeile direkt in PostgreSQL, ohne ein Skript zu schreiben.

intosql load pedidos_2024.json --into postgres://user@localhost/mydb

Was du über JSON-Dateien und PostgreSQL wissen solltest

Was IntoSQL in JSON-Dateien liest

  • Die Datei kann ein Array von Objekten sein, ein Objekt, das dieses Array unter einem Schlüssel wie data enthält, oder ein Objekt pro Zeile (NDJSON).
  • Jeder Schlüssel wird zu einer Spalte. Objekte und Arrays innerhalb eines Werts bleiben als JSON-Text erhalten.
  • Zahlen behalten ihre exakten Ziffern, und ISO-8601-Datumswerte werden zu Datums- oder Zeitstempelwerten.

Was du über PostgreSQL wissen solltest

  • Dezimalzahlen behalten ihre exakten Ziffern als numeric(p,s), und Datumswerte mit Zeitversatz werden zu timestamptz.
  • Text in PostgreSQL kann das NUL-Zeichen nicht enthalten, daher wird es aus den betroffenen Werten entfernt.
  • Das Skript läuft in einer einzigen Transaktion, sodass ein fehlgeschlagener Import nichts halb fertig zurücklässt.

Wie jede Art von Wert in PostgreSQL gespeichert wird

WertPostgreSQL
Ja und neinboolean
Ganze Zahleninteger
Große ganze Zahlenbigint
Dezimalzahlennumeric(p,s)
Gleitkommazahlendouble precision
Datumswertedate
Uhrzeitentime
Datum mit Uhrzeittimestamp
Datum mit Uhrzeit und Zeitversatztimestamptz
Texttext

Fragen zu JSON zu PostgreSQL

Keine Antwort gefunden? Schreib uns über die Kontaktseite, und ein Mensch antwortet. Kontaktseite

Wie konvertiere ich JSON zu PostgreSQL?

Leg deine Datei auf den Konverter oben auf dieser Seite. Er findet die Kopfzeile, liest jeden Wert und schreibt das PostgreSQL-Skript, mit jeder Korrektur aufgelistet. Lade das Skript herunter und führe es mit psql aus.

Welche Form braucht die JSON-Datei?

Ein Array von Objekten, ein Objekt, das dieses Array unter einem Schlüssel wie data enthält, oder ein Objekt pro Zeile (NDJSON). Jeder Schlüssel wird zu einer Spalte.

Welche PostgreSQL-Typen werden verwendet?

Ja/Nein-Werte werden boolean, ganze Zahlen integer, Dezimalzahlen numeric(p,s), Datumsangaben date, Datumsangaben mit Uhrzeit timestamp und Text text. Die Größen richten sich nach dem längsten Wert jeder Spalte.

Bleiben führende Nullen in PostgreSQL erhalten?

Ja. Ein Code wie 000481 bleibt Text, also speichert PostgreSQL ihn als text, und das Skript schreibt ihn als '000481'.

Kann es die Daten ohne Skript in PostgreSQL laden?

Ja, mit IntoSQL Pro. Die Desktop-App und die Kommandozeile verbinden sich mit PostgreSQL und laden die Zeilen direkt, nachdem sie die Tabelle angelegt haben.

Wie groß darf die JSON-Datei sein?

NDJSON, ein Objekt pro Zeile, wird beim Einströmen gelesen, daher funktionieren Dateien von mehreren Gigabyte im Browser. Ein JSON-Dokument wird vollständig gelesen, seine Grenze ist also der Speicher, den der Browser dieser Seite gibt. Die Desktop-App und die Kommandozeile nehmen Dateien jeder Größe.