JSON a SQL toma un array de objetos —una respuesta de API, una exportación, un fichero de pruebas— y produce las dos sentencias que lo meten en una base de datos: un CREATE TABLE cuyos tipos de columna se infieren de todos los valores de cada columna, e INSERT agrupados en listas VALUES multifil. La inferencia se hace bien: los enteros que superan 32 bits pasan a BIGINT, las cadenas con formato ISO a TIMESTAMP, las columnas mixtas degradan con seguridad a TEXT, y cada tipo canónico se escribe en la ortografía del dialecto: BOOLEAN llega como TINYINT(1) en MySQL y BIT en SQL Server. Los detalles que rompen los scripts manuales son justo el objetivo: identificadores entrecomillados por dialecto, comillas simples duplicadas para que O’Brien sobreviva, claves ausentes como NULL y objetos anidados serializados como texto JSON.
Características
CREATE TABLE con tipos inferidos de todas las filas
La comilla doblada de O’’Brien es lo que mantiene el script válido.
Errores comunes y solución de problemas
Una columna numérica salió como TEXT. — Algún valor de esa columna es una cadena: "42" con comillas, una cadena vacía o un N/A. La inferencia examina todas las filas y degrada a TEXT ante cualquier discordancia.
El script falla en una columna llamada order o user. — No debería: los identificadores van entrecomillados por dialecto justo para esto. Si falla, verifica que el dialecto coincide con la base: acentos graves para MySQL, corchetes para SQL Server.
Las fechas se importaron como texto plano. — Solo las formas ISO 8601 (2024-01-15, con hora opcional) se infieren como TIMESTAMP. Formatos locales como 15/01/2024 son ambiguos y quedan TEXT a propósito.
Preguntas frecuentes
¿Cómo se infieren los tipos de columna desde JSON?
Cada valor de la columna vota: los enteros dan INTEGER (o BIGINT pasados 32 bits), cualquier decimal la vuelve DOUBLE PRECISION, true/false dan BOOLEAN, las cadenas con fecha ISO dan TIMESTAMP y cualquier conflicto acaba en TEXT. Se examinan todas las filas.
¿Qué cambia entre dialectos SQL?
El entrecomillado de identificadores (comillas dobles, acentos graves, corchetes), la ortografía de tipos (BOOLEAN frente a TINYINT(1) frente a BIT), los literales booleanos (TRUE frente a 1) y el prefijo N que SQL Server quiere en texto Unicode.
¿Qué pasa con objetos de claves distintas?
Las columnas son la unión de claves de todas las filas, en orden de aparición; las filas sin una clave insertan NULL ahí. Así es como los datos heterogéneos de API suelen necesitar aterrizar en una tabla.
¿El script generado está listo para producción?
Está listo para importar: entrecomillado seguro y tipos sensatos. Una tabla de producción merece además clave primaria, NOT NULL e índices, que ninguna inferencia puede adivinar de los datos.
Herramientas relacionadas
CSV a SQL — Genera sentencias INSERT y CREATE TABLE a partir de un CSV.
JSON a CSV — Convierte un arreglo de objetos JSON planos a CSV.
Formateador de JSON — Embellece, minimiza y valida JSON con la ubicación de los errores.
JSON a TypeScript — Genera interfaces de TypeScript a partir de una muestra JSON.
JSON Flatten / Unflatten — Aplana JSON anidado a claves con notación de puntos, o vuelve a anidarlo.
Ordenar claves JSON — Ordena recursivamente las claves de un objeto JSON de la A a la Z.
Más herramientas de JSON
Formateador de JSON — Embellece, minimiza y valida JSON con la ubicación de los errores.