Convertidor de JSON a SQL

Convierte un array de objetos JSON en sentencias CREATE TABLE + INSERT para cualquier motor de base de datos.

100% en tu navegador — no se sube nada

Genera Sentencias CREATE TABLE e INSERT a Partir de Datos JSON

Ejemplo cargado: edítalo o límpialo

Acerca del Convertidor de JSON a SQL

Este convertidor de JSON a SQL toma un array de objetos JSON y genera SQL sintácticamente correcto para tu motor de base de datos. Infiere los tipos de columna automáticamente — enteros, decimales, booleanos, fechas y texto — y produce una sentencia CREATE TABLE más sentencias INSERT por lotes que puedes ejecutar directamente.

El convertidor maneja JSON del mundo real: los objetos y arrays anidados se convierten en columnas de texto, las claves faltantes se convierten en NULL, y cada valor de cadena se escapa correctamente para prevenir inyección SQL. También soporta JSON delimitado por líneas (NDJSON) para archivos de log y datos en streaming. Todo se ejecuta en tu navegador — tus datos nunca salen de tu dispositivo.

Cómo funciona la inferencia de tipos

El convertidor examina cada valor en cada columna para decidir el tipo SQL más estrecho que acomode a todos. Sigue una cadena de prioridad: si todos los valores no nulos son enteros dentro de ±2.100 millones elige INT; si exceden ese rango pero siguen siendo enteros elige BIGINT; si tienen puntos decimales elige DECIMAL(p,s) con la precisión mínima necesaria; si alguno usa notación científica recurre a DOUBLE/FLOAT. Los booleanos (true/false) se mapean a BOOLEAN o BIT. Las fechas calendario (YYYY-MM-DD) se mapean a DATE. Todo lo demás se convierte en TEXT o VARCHAR.

JSON de ejemplo:
[
  {"id": 1, "puntaje": 98.5, "activo": true, "alta": "2026-03-14"},
  {"id": 2, "puntaje": 77.3, "activo": false, "alta": "2026-03-15"}
]

Tipos inferidos (PostgreSQL):
  id       → INTEGER NOT NULL
  puntaje  → NUMERIC(3,1) NOT NULL
  activo   → BOOLEAN NOT NULL
  alta     → DATE NOT NULL
La inferencia de tipos elige el tipo más estrecho que acomode cada valor en la columna.

Manejo de NDJSON (JSON delimitado por líneas)

Muchos sistemas de logging y API emiten un objeto JSON por línea en lugar de envolverlo todo en un array. Este formato se llama NDJSON. El convertidor lo detecta automáticamente — simplemente pega las líneas directamente.

{"evento": "login", "usuario": "dana", "ts": "2026-03-14 09:00:00"}
{"evento": "compra", "usuario": "luis", "ts": "2026-03-14 09:05:23"}
{"evento": "logout", "usuario": "dana", "ts": "2026-03-14 09:12:45"}
Entrada NDJSON — cada línea se analiza de forma independiente, luego la unión de todas las claves se convierte en el conjunto de columnas.

Conversión rápida de JSON a SQL en Excel, Sheets y la línea de comandos

Para conversiones puntuales fuera del navegador, puedes transformar JSON en sentencias INSERT con unas pocas líneas de código — pero esta herramienta maneja la inferencia de tipos, el escapado y las diferencias entre dialectos que los scripts rápidos suelen omitir.

# jq en una línea (genera INSERTs básicos, sin inferencia de tipos)
cat datos.json | jq -r '.[] |
  "INSERT INTO t VALUES (\(.id), '\(.nombre)', '\(.alta)');"'

# Python (necesita json + escapado de cadenas)
import json
with open("datos.json") as f:
    for fila in json.load(f):
        vals = ", ".join(repr(v) for v in fila.values())
        print(f"INSERT INTO t VALUES ({vals});")
Los scripts rápidos funcionan con datos confiables — esta herramienta agrega escapado correcto, inferencia de tipos y CREATE TABLE.

Preguntas frecuentes

¿Qué formatos de JSON acepta esta herramienta?

Acepta un array JSON estándar de objetos ([{...}, {...}]), un solo objeto JSON ({...}), y JSON delimitado por líneas (NDJSON) donde cada línea es un objeto JSON separado. Los tres formatos se detectan automáticamente.

¿Cómo maneja los objetos o arrays anidados dentro del JSON?

Los objetos y arrays anidados se convierten a su representación de texto JSON (stringify) y se almacenan como columnas TEXT/VARCHAR. Esto preserva los datos sin perder información.

¿El SQL generado es seguro contra inyección?

Sí. Cada valor de cadena se escapa con el método correcto para el dialecto elegido — las comillas simples se duplican, las barras invertidas se escapan en MySQL, y los bytes NUL se eliminan. La salida es segura para ejecutar tal cual.

Herramientas relacionadas