Aller au contenu

Convertir JSON en PostgreSQL

Déposez votre fichier JSON pour obtenir un script PostgreSQL avec des instructions CREATE TABLE et INSERT. Chaque colonne reçoit un type, et chaque correction est listée avec sa ligne et sa colonne.

Votre fichier
jsonpedidos_2024.jsonFichier d'exemple, 771 o
Votre base de données

4 lignes converties, 2 corrections, aucune rejetée

Afficher
Les premières lignes de pedidos_2024.json, avec chaque correction signalée
Ligne
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;

Corrections

  1. Zéros initiaux conservés dans "pedido" : 000481 reste 000481, enregistré en texte.
  2. "pagado" contient des mots oui et non (sí), enregistrés en booléen.

Votre fichier est converti sur cet ordinateur et n'est jamais envoyé.

Autres exemples :

De JSON à PostgreSQL, colonne par colonne

L'exemple ci-dessus, pedidos_2024.json, tel qu'IntoSQL l'écrit pour PostgreSQL : ce que contient chaque colonne du fichier, le type qu'elle reçoit et comment sa première valeur apparaît dans le script.

Dans le fichierPremière valeurColonneType PostgreSQLDans le script
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

Charger le script dans PostgreSQL

Le téléchargement est un simple fichier .sql. Exécutez-le avec les outils de PostgreSQL.

Depuis un terminal

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

ON_ERROR_STOP arrête psql à la première erreur. Le script s'exécute dans une seule transaction, donc un chargement raté laisse la base de données intacte.

Depuis un outil de base de données

Dans pgAdmin ou DBeaver, ouvrez le script dans une fenêtre de requête et exécutez-le.

Sans scriptPro

IntoSQL Pro charge le fichier directement dans PostgreSQL depuis l'application de bureau ou la ligne de commande, sans écrire de script.

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

Bon à savoir sur les fichiers JSON et PostgreSQL

Ce qu'IntoSQL lit dans les fichiers JSON

  • Le fichier peut être un tableau d'objets, un objet qui contient ce tableau sous une clé comme data, ou un objet par ligne (NDJSON).
  • Chaque clé devient une colonne. Les objets et tableaux à l'intérieur d'une valeur sont gardés en texte JSON.
  • Les nombres gardent leurs chiffres exacts, et les dates ISO 8601 deviennent des dates ou des horodatages.

Bon à savoir sur PostgreSQL

  • Les décimaux gardent leurs chiffres exacts en numeric(p,s), et les dates avec décalage deviennent timestamptz.
  • Le texte PostgreSQL ne peut pas contenir le caractère NUL, il est donc retiré des valeurs qui en ont un.
  • Le script s'exécute dans une seule transaction, donc un chargement qui échoue ne laisse rien à moitié fait.

Comment chaque type de valeur est stocké dans PostgreSQL

ValeurPostgreSQL
Oui et nonboolean
Nombres entiersinteger
Grands nombres entiersbigint
Décimauxnumeric(p,s)
Nombres à virgule flottantedouble precision
Datesdate
Heurestime
Dates avec heuretimestamp
Dates avec heure et décalagetimestamptz
Textetext

Questions sur JSON vers PostgreSQL

Pas de réponse ici ? Écrivez-nous depuis la page de contact, une personne vous répond. Page de contact

Comment convertir JSON en PostgreSQL ?

Déposez votre fichier sur le convertisseur en haut de cette page. Il trouve l'en-tête, lit chaque valeur et écrit le script PostgreSQL, en listant chaque correction. Téléchargez le script et exécutez-le avec psql.

Quelle forme doit avoir le fichier JSON ?

Un tableau d'objets, un objet qui contient ce tableau sous une clé comme data, ou un objet par ligne (NDJSON). Chaque clé devient une colonne.

Quels types PostgreSQL utilise-t-il ?

Les valeurs oui et non deviennent boolean, les nombres entiers integer, les décimaux numeric(p,s), les dates date, les dates avec heure timestamp et le texte text. Les tailles viennent de la valeur la plus longue de chaque colonne.

Garde-t-il les zéros en tête dans PostgreSQL ?

Oui. Un code comme 000481 reste du texte, donc PostgreSQL le stocke en text et le script l'écrit '000481'.

Peut-il charger les données dans PostgreSQL sans script ?

Oui, avec IntoSQL Pro. L'application de bureau et la ligne de commande se connectent à PostgreSQL et chargent les lignes directement, en créant d'abord la table.

Quelle taille peut avoir le fichier JSON ?

Le NDJSON, un objet par ligne, est lu au fil de l'eau, donc des fichiers de plusieurs gigaoctets fonctionnent dans le navigateur. Un document JSON est lu en entier : sa limite est la mémoire que le navigateur accorde à cette page. L'application de bureau et la ligne de commande acceptent des fichiers de toute taille.