Saltar al contenido

Convertir JSON a PostgreSQL

Suelta tu archivo JSON y obtén un script de PostgreSQL con sentencias CREATE TABLE e INSERT. Cada columna recibe un tipo, y cada corrección se detalla con su fila y columna.

Tu archivo
jsonpedidos_2024.jsonArchivo de ejemplo, 771 B
Tu base de datos

4 filas convertidas, 2 correcciones, ninguna rechazada

Mostrar
Las primeras filas de pedidos_2024.json, con cada corrección marcada
Fila
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;

Correcciones

  1. Se conservaron los ceros a la izquierda en "pedido": 000481 sigue siendo 000481, guardado como texto.
  2. "pagado" contiene palabras de sí y no (sí); se guarda como booleano.

Tu archivo se convierte en esta computadora y nunca se sube.

Otros ejemplos:

De JSON a PostgreSQL, columna por columna

El ejemplo de arriba, pedidos_2024.json, tal como IntoSQL lo escribe para PostgreSQL: qué contiene cada columna en el archivo, qué tipo recibe y cómo queda su primer valor en el script.

En el archivoPrimer valorColumnaTipo en PostgreSQLEn el 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

Carga el script en PostgreSQL

La descarga es un archivo .sql simple. Ejecútalo con las herramientas propias de PostgreSQL.

Desde una terminal

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

ON_ERROR_STOP hace que psql se detenga en el primer error. El script corre en una sola transacción, así que una carga fallida deja la base de datos como estaba.

Desde una herramienta de base de datos

En pgAdmin o DBeaver, abre el script en una ventana de consulta y ejecútalo.

Sin scriptPro

IntoSQL Pro carga el archivo directo en PostgreSQL desde la app de escritorio o la línea de comandos, sin escribir un script.

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

Qué saber sobre los archivos JSON y PostgreSQL

Qué lee IntoSQL en los archivos JSON

  • El archivo puede ser un arreglo de objetos, un objeto que guarda ese arreglo bajo una clave como data, o un objeto por línea (NDJSON).
  • Cada clave se vuelve una columna. Los objetos y arreglos dentro de un valor se guardan como texto JSON.
  • Los números conservan sus dígitos exactos, y las fechas ISO 8601 se vuelven fechas o marcas de tiempo.

Qué saber sobre PostgreSQL

  • Los decimales conservan sus dígitos exactos como numeric(p,s), y las fechas con zona horaria se vuelven timestamptz.
  • El texto de PostgreSQL no admite el carácter NUL, así que se quita de los valores que lo tienen.
  • El script se ejecuta en una sola transacción, así que una carga que falla no deja nada a medias.

Cómo se guarda cada tipo de valor en PostgreSQL

ValorPostgreSQL
Sí y noboolean
Números enterosinteger
Números enteros grandesbigint
Decimalesnumeric(p,s)
Números de punto flotantedouble precision
Fechasdate
Horas del díatime
Fechas con horatimestamp
Fechas con hora y zona horariatimestamptz
Textotext

Preguntas sobre JSON a PostgreSQL

¿No encuentras la respuesta? Escríbenos desde la página de contacto y te responde una persona. Página de contacto

¿Cómo convierto JSON a PostgreSQL?

Suelta tu archivo en el convertidor al inicio de esta página. Encuentra el encabezado, lee cada valor y escribe el script de PostgreSQL, con la lista de cada corrección que hizo. Descarga el script y ejecútalo con psql.

¿Qué forma debe tener el archivo JSON?

Un arreglo de objetos, un objeto que guarda ese arreglo bajo una clave como data, o un objeto por línea (NDJSON). Cada clave se vuelve una columna.

¿Qué tipos de PostgreSQL usa?

Los valores sí y no pasan a boolean, los enteros a integer, los decimales a numeric(p,s), las fechas a date, las fechas con hora a timestamp y el texto a text. Los tamaños salen del valor más largo de cada columna.

¿Conserva los ceros a la izquierda en PostgreSQL?

Sí. Un código como 000481 se queda como texto, así que PostgreSQL lo guarda como text y el script lo escribe como '000481'.

¿Puede cargar los datos en PostgreSQL sin un script?

Sí, con IntoSQL Pro. La app de escritorio y la línea de comandos se conectan a PostgreSQL y cargan las filas directamente, después de crear la tabla.

¿Qué tan grande puede ser el archivo JSON?

NDJSON, un objeto por línea, se lee a medida que llega, así que en el navegador funcionan archivos de varios gigabytes. Un documento JSON se lee completo, así que su límite es la memoria que el navegador le da a esta página. La app de escritorio y la línea de comandos aceptan archivos de cualquier tamaño.