Command Palette

Search for a command to run...

Cómo convertir declaraciones JSON a SQL INSERT

Cómo convertir declaraciones JSON a SQL INSERT

T
Toolz Team
|Sep 13, 2026|15 Min Lectura
Prefiera Toolz.dev en Google

Parte de la colección Herramientas de datos

Convertidor JSON a SQL

Convierta una matriz JSON de objetos en SQL CREATE TABLE e INSERT declaraciones para MySQL, PostgreSQL o SQLite. Infiere tipos, ejecuta el lado del cliente.

Utilice el Convertidor JSON a SQL

La mayor parte del JSON con el que trato comienza como una respuesta API y necesita terminar en una base de datos. En el backend de Toolz.dev, que se ejecuta en Express y TypeORM a través de PostgreSQL, he perdido la cuenta de las veces que tuve una exportación JSON desde un servicio que quería cargar en una tabla para una consulta rápida, una semilla de migración o una reproducción local de un error. Hacerlo a mano es sombrío: escribes un CREATE TABLE, entonces escribes a mano INSERT declaraciones, citar cada cadena, duplicar cada apóstrofe, recordar qué campos son números y convertir las claves faltantes en NULL. Si se equivoca en una fila de doscientas, todo el lote no se ejecuta.

Un convertidor JSON a SQL realiza ese trabajo mecánico por usted. Pegas una serie de objetos, eliges un dialecto de base de datos y produce un CREATE TABLE con tipos de columnas sensibles más el INSERT declaraciones para cargar cada fila. Esta guía explica cómo funciona la conversión, las decisiones que toma sobre tipos y citas, y las situaciones reales en las que ahorra una tarde.

TL;Dr: los Convertidor JSON a SQL convierte una matriz JSON de objetos en CREATE TABLE y INSERT declaraciones para MySQL, PostgreSQL, SQLite o SQL estándar. Lee las claves de objeto como columnas, infiere cada tipo de columna a partir de los datos, escapa de cadenas, convierte las claves faltantes y las nulas en NULLy almacena objetos anidados como JSON. Todo se ejecuta en su navegador, por lo que una respuesta API con datos reales nunca sale de su máquina. Para fuentes inversas o tabulares, consulte CSV a SQL y JSON a CSV.

¿qué hace un convertidor JSON a SQL?

Datos de modelos JSON y SQL de formas fundamentalmente diferentes. JSON es un árbol de objetos y matrices anidados con tipos dinámicos por valor. Una tabla relacional es una cuadrícula plana de columnas fijas y mecanografiadas. Convertir de una a otra es una serie de pequeñas decisiones, y el valor de la herramienta es tomar esas decisiones de manera consistente.

Lee las claves de sus objetos como el conjunto de columnas, trata cada objeto como una fila, elige un tipo SQL para cada columna y luego escribe las declaraciones. El resultado tiene dos partes: una opcional CREATE TABLE eso declara las columnas con sus tipos inferidos, y el INSERT declaraciones que llevan los valores. Puede pegar el resultado en un cliente de base de datos, guardarlo como parte de una migración o canalizarlo mysql, psql, o sqlite3 desde la línea de comando.

La entrada normalmente es una matriz de objetos, como [{ "id": 1, "name": "Ada" }, { "id": 2, "name": "Grace" }]. Un solo objeto también funciona y se convierte en una fila. Lo que no aceptará es una matriz de valores básicos como [1, 2, 3], porque no hay claves para convertir en columnas, y eso te lo dice en lugar de adivinar.

¿cómo se infieren los tipos de columnas?

Esta es la parte que separa un conversor útil de uno que volca todo en columnas de texto. Para cada columna, la herramienta escanea el valor en cada fila y elige el tipo más estrecho que se adapta a todas ellas.

Si cada valor presente en una columna es un número entero, la columna se convierte en un tipo entero. Si los valores son números pero algunos tienen decimales, se convierte en un tipo de punto flotante. Si cada valor lo es true investigaciones operacionales false, se vuelve booleano. Si cada valor es un objeto o matriz anidado, se convierte en un tipo JSON. Cualquier otra cosa, incluida una columna donde los valores no estén de acuerdo, vuelve al texto para que INSERT no puede fallar en una discrepancia de tipo.

null y las claves faltantes se omiten al decidir el tipo; en la práctica sólo hacen que la columna sea anulable. Eso significa una columna que contiene números en la mayoría de las filas y null en unos pocos todavía se escribe como un número, que es lo que quieres.

El nombre del tipo concreto depende del dialecto. Así es como se mapean los tipos neutrales:

Tipo inferido mic PostgreSQL SQLite Sql estándar
Entero INT INTEGER INTEGER INTEGER
decimal DOUBLE DOUBLE PRECISION REAL REAL
booleano TINYINT(1) BOOLEAN INTEGER BOOLEAN
JSON anidado JSON JSONB TEXT TEXT
Texto VARCHAR(255) TEXT TEXT TEXT

Puede desactivar por completo la inferencia de tipos, en cuyo caso cada columna se convierte en texto. Eso es ocasionalmente lo que desea cuando carga datos en una tabla de preparación y planea emitirlos más tarde.

¿cómo maneja las partes incómodas de los datos reales?

El JSON real rara vez es uniforme y la conversión tiene que hacer frente. La herramienta maneja tres casos que hacen tropezar a los convertidores ingenuos.

Primero, objetos con claves diferentes. Si un objeto tiene un email campo y otro no, el conjunto de columnas es la unión de cada clave que aparece, se mantiene en el orden visto por primera vez, y cualquier objeto al que le falte una clave obtiene NULL en esa columna. La herramienta te avisa cuando los objetos no son uniformes para que no te sorprendas.

En segundo lugar, objetos y matrices anidados. Las columnas SQL son planas, por lo que tienen un valor similar { "street": "1 Main St", "city": "London" } no puede convertirse en varias columnas automáticamente sin que usted decida la forma. En cambio, el convertidor serializa el valor anidado nuevamente al texto JSON y lo almacena en una columna JSON en MySQL, una columna JSONB en PostgreSQL o una columna de texto en otro lugar. La estructura permanece intacta y puede consultarla más tarde con su base de datos 's Funciones JSON.

En tercer lugar, tipos mixtos en una columna. Si un campo es un número en un registro y una cadena en otro, forzar un tipo numérico haría que fallaran la mitad de los insertos. La herramienta detecta el desacuerdo y escribe la columna como texto, luego cita cada valor como una cadena literal para que el lote se ejecute limpiamente.

¿cómo se escapan los valores?

El escape correcto es la diferencia entre un script que se ejecuta y uno que arroja un error de sintaxis en la fila 47. Las reglas que aplica el convertidor son las estándar SQL.

Los valores del texto están envueltos en comillas individuales, y cualquier comilla dentro de un valor se duplica, por lo tanto O'Brien se convierte en 'O''Brien'. Esta es una cadena ANSI SQL que se escapa y funciona en los cuatro dialectos. Los números y los booleanos se escriben sin comillas, porque un número citado es una cadena en la mayoría de los motores. Los booleanos se representan como TRUE y FALSE en PostgreSQL y SQL estándar, y como 1 y 0 en MySQL y SQLite, coincidiendo con la forma en que cada motor los almacena. null y las claves faltantes se convierten en palabras clave no citadas NULL.

Los identificadores, es decir, los nombres de tablas y columnas, también se citan, con comillas invertidas en MySQL y comillas dobles en el resto. Eso mantiene una columna con nombre order investigaciones operacionales select de chocar con una palabra reservada.

Cómo utilizar el convertidor JSON a SQL

Paso 1: Pegue su JSON

Coloque una serie de objetos o presione Cargar muestra para ver la forma esperada. Cada objeto se convierte en una fila.

Paso 2: nombra la tabla y elige un dialecto

Escriba el nombre de la tabla de destino y elija MySQL, PostgreSQL, SQLite o SQL estándar. El dialecto controla el estilo de citas, los nombres de los tipos y cómo se escriben los booleanos y el JSON anidado.

Paso 3: establezca las opciones de salida

Decidir si incluir el CREATE TABLE, si inferir tipos de columnas y si emitir una fila múltiple INSERT o una declaración por fila. Un único inserto de varias filas se carga más rápido; una declaración por fila produce un archivo compatible con diferencias y le permite ejecutar filas individualmente.

Paso 4: Copie el SQL

Lea las declaraciones generadas y cópielas. Pegue el script en su cliente de base de datos o ejecútelo desde la línea de comandos para crear y cargar la tabla.

Casos de uso comunes

Sembrar una base de datos a partir de una respuesta API

Está creando una función y necesita filas realistas para trabajar. Extraiga una respuesta JSON de la API ascendente, péguela y tendrá una CREATE TABLE e inserciones listas para sembrar su base de datos local. Sin escritura manual, sin cotizaciones perdidas.

Convertir una configuración o exportación en una tabla

Un servicio exporta sus datos como una matriz JSON. Quiere ejecutar consultas SQL ad hoc en su contra en lugar de escribir JavaScript para filtrar la matriz. Conviértalo a SQL, cárguelo en SQLite y consúltelo con el lenguaje creado exactamente para eso.

Construyendo una semilla migratoria

Las migraciones de marcos a menudo necesitan un paso inicial que inserte datos de referencia. Generando el INSERT las declaraciones de un dispositivo JSON conocido le brindan un bloque estable y revisable para pegar en la migración, en lugar de traducir los datos a mano.

Reproducir un error de producción localmente

Sólo aparece un error para un conjunto específico de registros. Tome el JSON para esos registros, conviértalo en inserciones, cárguelos en su base de datos local y reproduzca el problema sin copiar una base de datos de producción.

Inserto MULTIFILA vs POR FILA: ¿cuál elegir?

Un inserto de varias filas agrupa cada fila en una declaración con muchas VALUES tuplas. Es compacto y se carga más rápido, porque la base de datos analiza y planifica una declaración en lugar de cientos. Elijalo para carga masiva.

Una declaración por fila es más detallada pero tiene dos ventajas. Produce un archivo donde cada fila es su propia línea, que se lee limpiamente en una revisión de código y difiere bien en el control de versiones. Y si una fila viola una restricción, las demás aún tienen éxito, lo cual es útil cuando estás cargando datos desordenados y quieres ver qué filas fallan en lugar de perder todo el lote. Elijalo para las semillas que confirmarás o para los datos en los que aún no confías plenamente.

Ejecutando el SQL generado desde la línea de comando

Una vez que tenga el script, cargarlo es una línea única en cada motor. Para SQLite, guarde la salida en un archivo y canílelo: sqlite3 mydata.db < insert.sql crea la tabla y carga las filas en un archivo de base de datos nuevo. Para PostgreSQL, psql -d mydb -f insert.sql ejecuta todo el script en la base de datos nombrada. Para MySQL, mysql -u user -p mydb < insert.sql hace lo mismo. Debido a que el generador cita identificadores y escapa de valores para el dialecto que eligió, el script se ejecuta sin las correcciones manuales que normalmente necesita SQL escrito a mano.

Si generó una declaración por fila en lugar de un único inserto de varias filas, vale la pena incluir la carga en una transacción. Añadiendo BEGIN; en la cima y COMMIT; en la parte inferior, cientos de inserciones individuales se convierten en una operación atómica, que es más rápida y segura: si una fila posterior no cumple con una restricción, toda la carga retrocede en lugar de dejar la tabla medio llena. Para un inserto de varias filas, esto ya es efectivamente atómico, ya que es una declaración única.

Rendimiento y límites con grandes matrices

La conversión en sí es lineal en el tamaño de la entrada y se ejecuta completamente en su navegador, por lo que unos pocos miles de filas se convierten instantáneamente. Los límites prácticos no están en la herramienta sino en lo que haces con la salida. Una sola fila múltiple INSERT con decenas de miles de tuplas se puede superar el tamaño máximo de declaración o el límite de paquete de una base de datos &#39;s, MySQL&#39;s max_allowed_packet siendo la única persona que golpea primero. Si está cargando una matriz muy grande, cambie a una declaración por fila para que cada una sea pequeña, o divida la entrada en lotes de unos pocos cientos de filas y conviértalas por separado.

También hay una advertencia de precisión que vale la pena conocer. Los números JSON son analizados por el navegador &#39;s motor JSON en flotadores estándar de doble precisión, por lo que un número entero mayor que aproximadamente nueve billones, más allá del rango de enteros seguros de JavaScript &#39;s, puede perder precisión antes de que la herramienta lo vea. Esa es una propiedad del análisis JSON en todos los entornos, no en el convertidor, pero significa que una identificación numérica gigante se representa de manera más segura como una cadena en el JSON de origen, que luego la herramienta almacenará como texto y conservará exactamente.

Donde esto encaja con otras herramientas

JSON a SQL es una dirección de una pequeña familia. Cuando su fuente es una hoja de cálculo o una exportación CSV en lugar de JSON, CSV a SQL hace el mismo trabajo a partir de entrada tabular con el mismo tipo de inferencia y escape. Cuando necesita los datos como un archivo plano en lugar de una base de datos, JSON a CSV aplana la matriz en filas y CSV a JSON vuelve al revés. Antes de convertir cualquier cosa, Formateador JSON imprimirá y validará bastante el JSON para que capte una coma perdida antes de que se convierta en un error de análisis. Y una vez que tengas el SQL, Formateador SQL sangrará y alineará las declaraciones de un archivo de migración que se enorgullece de confirmar.

Por el razonamiento detrás de hacer todo esto en el navegador en lugar de cargar datos a un servicio convertidor, el Privacidad de datos en herramientas en línea la guía establece el modelo del lado del cliente y el Kit de herramientas para desarrolladores web recopila las utilidades que combinan bien con el trabajo de conversión de datos.

preguntasrán el

¿cómo convierto JSON a SQL?

Pegue una matriz JSON de objetos, establezca el nombre de la tabla y elija su dialecto SQL. La herramienta lee las claves de objeto como nombres de columnas, infiere cada tipo de columna y genera una TABLA CREAR más declaraciones INSERTAR que puede copiar y ejecutar en su base de datos.

¿qué forma JSON acepta?

Una matriz de objetos es la entrada normal, donde cada objeto tiene una fila. Un solo objeto también funciona y produce una fila. Las matrices de primitivas o formas profundamente no coincidentes se rechazan con un error que explica lo que se espera.

¿qué bases de datos SQL son compatibles?

El convertidor genera declaraciones para MySQL, PostgreSQL, SQLite y SQL estándar. El dialecto que elija controla las citas del identificador, el tipo y la sintaxis booleana, y el tipo JSON nativo, por lo que el script se ejecuta en esa base de datos sin ediciones.

¿cómo se deciden los tipos de columnas?

Cada columna se compara con cada objeto. Si todos los valores presentes son números enteros, se convierte en un tipo entero, todos los números se convierten en un tipo decimal, todos los valores verdaderos o falsos se convierten en un tipo booleano, todos los objetos o matrices se convierten en un tipo JSON y todo lo mezclado se convierte en texto.

¿qué sucede con los objetos y matrices anidados?

Se serializan nuevamente en texto JSON y se almacenan en una columna JSON en MySQL, una columna JSONB en PostgreSQL o una columna TEXT en SQLite y SQL estándar. Esto mantiene la estructura intacta para que pueda consultarla con las funciones JSON de su base de datos más adelante.

¿Qué pasa si mis objetos tienen claves diferentes?

Está bien. Las columnas son la unión de cada clave que aparece, mantenida en el orden visto por primera vez. Cualquier objeto al que le falte una de esas claves obtiene NULL en esa columna y la herramienta le advierte cuando los objetos no son uniformes.

¿cómo se escapan las cadenas y las citas?

Los valores del texto se envuelven en comillas simples y cualquier comilla única dentro de un valor se duplica, que es el escape SQL estándar. Los números y booleanos no se citan, nulo se convierte en NULL y los identificadores se citan con comillas invertidas para MySQL o comillas dobles para los otros dialectos.

¿Se subió mi json a alguna parte?

No. El análisis y la generación SQL se ejecutan como JavaScript en su navegador. No se transmite, registra ni almacena nada, y la herramienta sigue funcionando sin conexión una vez cargada, lo que puede confirmar mirando la pestaña de red mientras realiza la conversión.


Comments

0 comments

0/2000 characters

No comments yet. Be the first to share your thoughts!