Convertidor de SQL a JSON
Pega sentencias INSERT INTO, opcionalmente con su CREATE TABLE, y obtén las filas de cada tabla como un array JSON de objetos. Funciona con la sintaxis de MySQL, PostgreSQL, SQLite y SQL Server, admite volcados con varias tablas y exporta cualquier tabla a CSV.
Última actualización:
Cómo usar Convertidor de SQL a JSON
- Pega tu SQL: sentencias INSERT, un volcado completo, o haz clic en Ejemplo. También puedes subir un archivo .sql.
- Elige la tabla que quieres ver si el SQL contiene más de una, o selecciona "Todas las tablas".
- Ajusta las opciones: sangría, booleanos, columnas JSON y escapes con barra invertida.
- Revisa la línea de estado para ver sentencias omitidas o errores con su número de línea.
- Copia o descarga el JSON, o exporta la tabla seleccionada a CSV.
Cómo se convierten los valores SQL a JSON
| Valor SQL | Valor JSON | Notas |
|---|---|---|
'text', N'text', E'text' | "text" | '' se convierte en una comilla; escapes con barra invertida en modo MySQL y en cadenas E'' |
42, -15.50, 1.5e3 | 42, -15.5, 1500 | Los enteros mayores que 253 − 1 pueden conservarse como cadenas |
NULL | null | DEFAULT también se escribe como null |
TRUE / FALSE | true / false | También 1/0, en columnas BOOLEAN, BOOL, BIT(1) y TINYINT(1) |
'{"a":1}' en una columna JSON/JSONB | {"a": 1} | Requiere un CREATE TABLE que declare la columna como JSON |
'2024-01-15'::date, CAST('5' AS INT) | "2024-01-15", "5" | Se usa el literal dentro de la conversión |
NOW(), CURRENT_TIMESTAMP | "NOW()" | Las expresiones no se pueden evaluar, así que se conservan como texto |
X'4A6F', 0x4A6F | "0x4A6F", 19055 | Las cadenas hexadecimales se mantienen como texto hexadecimal |
Ejemplo
INSERT INTO users (id, name, active) VALUES (1, 'Ann', TRUE), (2, 'O''Brien', NULL);
se convierte en
[
{ "id": 1, "name": "Ann", "active": true },
{ "id": 2, "name": "O'Brien", "active": null }
]
Consejos para volcados de bases de datos
- mysqldump escribe INSERT extendidos sin lista de columnas. Mantén las sentencias CREATE TABLE en la entrada para que el JSON tenga los nombres reales de las columnas en lugar de column1, column2.
- pg_dump escribe bloques COPY de forma predeterminada. Ejecútalo con
--insertso--column-insertspara generar sentencias INSERT que esta herramienta pueda leer. - SQLite: el comando
.dumpdel shell sqlite3 genera sentencias CREATE TABLE e INSERT que se convierten directamente. - Las sentencias como SET, LOCK TABLES, DROP TABLE y CREATE INDEX se ignoran de forma segura. El SQL solo se analiza, nunca se ejecuta.
Preguntas frecuentes
¿Qué SQL entiende el convertidor?
Sentencias INSERT INTO, INSERT IGNORE y REPLACE INTO con una o varias filas en VALUES, además de sentencias CREATE TABLE, que se usan para nombrar las columnas y detectar los tipos booleano y JSON. Otras sentencias de un volcado, como SET, LOCK TABLES, DROP o CREATE INDEX, se omiten y se cuentan en la línea de estado.
¿De dónde salen las claves del JSON?
De la lista de columnas de la sentencia INSERT, por ejemplo INSERT INTO users (id, name) VALUES ... Si el INSERT no tiene lista de columnas, se usan las columnas de un CREATE TABLE de la misma tabla. Si no hay ninguna de las dos, las claves se llaman column1, column2, etc.
¿Cómo se convierten los valores?
Las cadenas entre comillas pasan a ser cadenas JSON, los números pasan a ser números JSON, NULL pasa a ser null y TRUE/FALSE pasan a ser true/false. Los valores de columnas BOOLEAN, BOOL o BIT(1) pueden convertirse de 1/0 a true/false, y los valores de columnas JSON o JSONB pueden analizarse como objetos anidados. Las llamadas a funciones como NOW() se conservan como texto.
¿Qué son los escapes con barra invertida?
MySQL trata la barra invertida dentro de una cadena como carácter de escape, así que 'It\'s' significa It's y \n significa un salto de línea. PostgreSQL, SQLite y SQL Server tratan las barras invertidas de forma literal y solo usan '' para escapar una comilla. El modo automático activa los escapes con barra invertida cuando el SQL parece de MySQL, por ejemplo cuando usa comillas `backtick`.
¿Puedo convertir un volcado completo de la base de datos?
Sí. Pega o sube el archivo del volcado. Cada tabla con sentencias INSERT obtiene su propio array; selecciona una tabla en el menú o elige Todas las tablas para obtener un objeto JSON con el nombre de cada tabla como clave. Todo se ejecuta localmente, así que el único límite para volcados muy grandes es la memoria de tu navegador.
¿Por qué algunos números aparecen entre comillas en el JSON?
Los enteros mayores que 9,007,199,254,740,991 no pueden representarse con exactitud como números JSON en JavaScript, así que se conservan como cadenas para no perder ningún dígito. Desactiva la opción si prefieres números normales.
¿Se prueban todas las herramientas de FreeToolCabin para comprobar su calidad y precisión?
Sí. Cada herramienta del sitio pasa pruebas automáticas en navegadores reales para comprobar que el resultado es correcto y que no hay errores. Si encuentras un fallo o tienes una sugerencia, escríbenos a [email protected] y lo revisaremos.
Herramientas relacionadas
Ver todas las de Conversores de datos y formatos de archivo →