Saltar al contenido
AZ Tools

Generador de JSON → SQL INSERT

Pegas un array JSON (o un objeto único) y emite un insert SQL listo para correr. Las columnas son la unión de todas las claves; las filas que carecen de una columna obtienen NULL. Strings se escapan con comilla simple, números y booleans se vuelven literales, objetos / arrays anidados se serializan a JSON. `ON CONFLICT` opcional (Postgres / SQLite) o `ON DUPLICATE KEY UPDATE` (MySQL) así puedes meter la salida directo en un job de sync.

SQL(3)
INSERT INTO "users" ("id", "name", "email", "verified", "joined")
VALUES
  (1, 'Alice', 'alice@example.com', TRUE, '2024-01-15'),
  (2, 'Bob', 'bob@example.com', FALSE, '2024-03-22'),
  (3, 'Carol', NULL, TRUE, '2024-06-01');

Los strings se escapan duplicando comillas simples — seguro para los cuatro dialectos.

Cómo usar

  1. Pega un array JSON de objetos (o un objeto único).
  2. Establece el nombre de tabla y el dialecto SQL.
  3. Conmuta VALUES multi-fila para una sola sentencia, o off para un INSERT por fila. Conmuta upsert si quieres ON CONFLICT / ON DUPLICATE KEY UPDATE.

Preguntas frecuentes

¿Cómo se manejan objetos anidados?
Se serializan a JSON e insertan como string con comillas. Columnas PostgreSQL y MySQL de tipo `JSON` / `JSONB` las aceptan directamente; en SQLite entran como TEXT.
¿Diferencia entre multi-fila y un INSERT por fila?
Multi-fila produce un único `INSERT INTO ... VALUES (…), (…), (…);` que corre mucho más rápido en carga masiva. Por fila produce N sentencias — más práctico cuando quieres comentar filas individuales o esperas fallos parciales.
¿Basta con este escapado para ejecutar el SQL con seguridad?
Escapa las comillas simples para que las sentencias sean sintácticamente válidas, que no es lo mismo que ser seguras frente a una entrada hostil. El SQL generado es solo texto: léelo antes de ejecutarlo y, cuando los datos vengan de un sitio que no controlas, cárgalos con sentencias parametrizadas o con un cargador masivo como COPY o LOAD DATA en lugar de pegar un script generado en una consola.
¿Por qué salieron mis números entrecomillados, o mis identificadores perdieron dígitos?
Los tipos siguen al JSON y no a tu tabla. Un valor escrito como "42" en JSON produce un literal entrecomillado aunque la columna sea entera: conviértelo en SQL o corrige el JSON. Los identificadores grandes son la trampa contraria: si llegaron como números JSON puede que ya hubieran perdido sus últimas cifras antes de llegar aquí, y por eso conviene transportarlos como cadenas.

Herramientas relacionadas