Convertir JSON a MySQL
Suelta tu archivo JSON y obtén un script de MySQL con sentencias CREATE TABLE e INSERT. Cada columna recibe un tipo, y cada corrección se detalla con su fila y columna.
4 filas convertidas, 2 correcciones, ninguna rechazada
| Fila | ||||||
|---|---|---|---|---|---|---|
| 2 | 000481 | Peña Muñoz | 2024-02-03T10:15:00Z | 1234.5 | true | |
| 3 | 000482 | José Ángel Ruiz | 2024-02-15T16:40:00Z | 99.9 | false | Entrega en la tarde |
| 4 | 000483 | Zoë Ortíz | 2024-02-29T09:05:00Z | 12 | true | |
| 5 | 000484 | Ñuño Castañeda | 2024-03-11T13:30:00Z | 980.75 | sí | Factura con "RFC" |
-- Written by IntoSQL for MySQL.
SET NAMES utf8mb4;
SET SESSION sql_mode = REPLACE(@@sql_mode, 'NO_BACKSLASH_ESCAPES', '');
START TRANSACTION;
CREATE TABLE pedidos_2024 (
pedido varchar(8) NOT NULL,
cliente varchar(16) NOT NULL,
fecha datetime NOT NULL,
total decimal(6,2) NOT NULL,
pagado tinyint(1) NOT NULL,
notas varchar(32)
) DEFAULT CHARSET=utf8mb4;
INSERT INTO pedidos_2024 (pedido, cliente, fecha, total, pagado, notas) VALUES
('000481', 'Peña Muñoz', '2024-02-03 10:15:00', 1234.5, TRUE, NULL),
('000482', 'José Ángel Ruiz', '2024-02-15 16:40:00', 99.9, FALSE, 'Entrega en la tarde'),
('000483', 'Zoë Ortíz', '2024-02-29 09:05:00', 12, TRUE, NULL),
('000484', 'Ñuño Castañeda', '2024-03-11 13:30:00', 980.75, TRUE, 'Factura con "RFC"');
COMMIT;
Correcciones
- Se conservaron los ceros a la izquierda en "pedido": 000481 sigue siendo 000481, guardado como texto.
- "pagado" contiene palabras de sí y no (sí); se guarda como booleano.
Tu archivo se convierte en esta computadora y nunca se sube.
Otros ejemplos:
De JSON a MySQL, columna por columna
El ejemplo de arriba, pedidos_2024.json, tal como IntoSQL lo escribe para MySQL: qué contiene cada columna en el archivo, qué tipo recibe y cómo queda su primer valor en el script.
| En el archivo | Primer valor | Columna | Tipo en MySQL | En el script |
|---|---|---|---|---|
| pedido | 000481 | pedido | varchar(8) | '000481' |
| cliente | Peña Muñoz | cliente | varchar(16) | 'Peña Muñoz' |
| fecha | 2024-02-03T10:15:00Z | fecha | datetime | '2024-02-03 10:15:00' |
| total | 1234.5 | total | decimal(6,2) | 1234.5 |
| pagado | true | pagado | tinyint(1) | TRUE |
| notas | - | notas | varchar(32) | NULL |
Carga el script en MySQL
La descarga es un archivo .sql simple. Ejecútalo con las herramientas propias de MySQL.
Desde una terminal
mysql --default-character-set=utf8mb4 mydb < pedidos_2024.mysql.sqlEl script define utf8mb4 por sí mismo; el flag hace que el cliente lo envíe igual, así que los acentos llegan intactos.
Desde una herramienta de base de datos
En MySQL Workbench, elige File, Run SQL Script y selecciona el archivo.
Sin scriptPro
IntoSQL Pro carga el archivo directo en MySQL desde la app de escritorio o la línea de comandos, sin escribir un script.
intosql load pedidos_2024.json --into mysql://user@localhost/mydbQué saber sobre los archivos JSON y MySQL
Qué lee IntoSQL en los archivos JSON
- El archivo puede ser un arreglo de objetos, un objeto que guarda ese arreglo bajo una clave como data, o un objeto por línea (NDJSON).
- Cada clave se vuelve una columna. Los objetos y arreglos dentro de un valor se guardan como texto JSON.
- Los números conservan sus dígitos exactos, y las fechas ISO 8601 se vuelven fechas o marcas de tiempo.
Qué saber sobre MySQL
- Los valores sí y no se vuelven tinyint(1). El texto de hasta 255 caracteres es varchar; el texto más largo es text, mediumtext o longtext según su tamaño.
- El script usa utf8mb4 y fija el modo SQL, así que los acentos, emoji, barras invertidas y saltos de línea se cargan tal como están escritos.
- El datetime de MySQL no guarda zona horaria.
Cómo se guarda cada tipo de valor en MySQL
| Valor | MySQL |
|---|---|
| Sí y no | tinyint(1) |
| Números enteros | int |
| Números enteros grandes | bigint |
| Decimales | decimal(p,s)double |
| Números de punto flotante | double |
| Fechas | date |
| Horas del día | time(6)time |
| Fechas con hora | datetime(6)datetime |
| Fechas con hora y zona horaria | datetime(6)datetime |
| Texto | varchar(n)textmediumtextlongtext |
Preguntas sobre JSON a MySQL
¿No encuentras la respuesta? Escríbenos desde la página de contacto y te responde una persona. Página de contacto
¿Cómo convierto JSON a MySQL?
Suelta tu archivo en el convertidor al inicio de esta página. Encuentra el encabezado, lee cada valor y escribe el script de MySQL, con la lista de cada corrección que hizo. Descarga el script y ejecútalo con the mysql client.
¿Qué forma debe tener el archivo JSON?
Un arreglo de objetos, un objeto que guarda ese arreglo bajo una clave como data, o un objeto por línea (NDJSON). Cada clave se vuelve una columna.
¿Qué tipos de MySQL usa?
Los valores sí y no pasan a tinyint(1), los enteros a int, los decimales a decimal(p,s), las fechas a date, las fechas con hora a datetime(6) y el texto a varchar(n). Los tamaños salen del valor más largo de cada columna.
¿Conserva los ceros a la izquierda en MySQL?
Sí. Un código como 000481 se queda como texto, así que MySQL lo guarda como varchar(8) y el script lo escribe como '000481'.
¿Puede cargar los datos en MySQL sin un script?
Sí, con IntoSQL Pro. La app de escritorio y la línea de comandos se conectan a MySQL y cargan las filas directamente, después de crear la tabla.
¿Qué tan grande puede ser el archivo JSON?
NDJSON, un objeto por línea, se lee a medida que llega, así que en el navegador funcionan archivos de varios gigabytes. Un documento JSON se lee completo, así que su límite es la memoria que el navegador le da a esta página. La app de escritorio y la línea de comandos aceptan archivos de cualquier tamaño.