Saltar al contenido
4all.tools

Convierte datos JSON planos y SQL localmente

Convierte filas JSON planas a un subconjunto SQL documentado de PostgreSQL o SQLite, o importa CREATE TABLE e INSERT admitidos como JSON.

Espacio de trabajo de la herramienta

Convertidor JSON / SQL

Se necesita JavaScript para procesar archivos localmente en el navegador. No se envían datos al servidor.

Convierte filas JSON planas a SQL o importa a JSON un subconjunto SQL publicado. La conversión empieza al elegir la acción.

La entrada permanece en este navegador. Los archivos se leen localmente y nunca se suben.

Esta herramienta implementa un subconjunto documentado, no un motor de base de datos completo. Referencia: PostgreSQL {version}; UTF8 y standard_conforming_strings activados.

JSON debe contener filas planas de objetos con valores escalares. SQL acepta una tabla, tipos escalares publicados y sentencias INSERT con listas completas de columnas.

SQL se genera como texto con el perfil elegido. No se ejecuta.

Límites: entrada 1.000.000 unidades UTF-16 / 4.000.000 bytes; archivo 4.000.000 bytes; filas 10.000; columnas 200; posiciones 75.000.

El perfil también limita sentencias SQL, tokens, trabajo de análisis, salida, diagnósticos y tiempo. Abajo se muestran los límites restantes de entrada.

El ejemplo es una muestra local. Al cargarlo, reemplaza la entrada tras tu acción explícita.

JSON a SQL

SQL se genera como texto con el perfil elegido. No se ejecuta.

Se necesita JavaScript para procesar archivos localmente en el navegador. No se envían datos al servidor.

Mensajes y diagnósticos

Cuando existen, los mensajes indican sentencia SQL, tupla, fila, columna tabular o posición física del editor. Se ocultan los detalles internos desconocidos.

    Convierte filas JSON planas a SQL

    Elige JSON a SQL, pega un array de objetos JSON (o un único objeto), selecciona PostgreSQL o SQLite y pulsa Generar SQL. La herramienta combina la unión de claves de todas las filas y las escribe según su primera aparición. Cada objeto genera una fila. Los valores de celda deben ser strings, números finitos, booleanos o null; se rechazan arrays y objetos anidados.

    [
      {"id": 1, "name": "Ada", "active": true},
      {"id": 2, "name": "Grace", "active": false}
    ]

    Un null explícito es un valor. Una propiedad ausente es distinta: de forma predeterminada se rechaza. La opción Convertir ausentes a NULL rellena la celda ausente, pero pierde la diferencia entre ausencia y null explícito. Se rechazan columnas que combinan familias incompatibles, por ejemplo un número en una fila y un objeto en otra. Una columna con solo null no permite inferir un tipo cierto y genera un aviso.

    El perfil de referencia de PostgreSQL genera TEXT, BIGINT, NUMERIC y BOOLEAN. SQLite genera TEXT, INTEGER, REAL y BOOLEAN; SQLite almacena booleanos como enteros y REAL puede redondear decimales. CREATE TABLE se incluye de forma predeterminada y se puede quitar; el SQL generado sigue incluyendo INSERT. Los identificadores obedecen las reglas del dialecto, incluidas las palabras reservadas y el límite de 63 bytes. El generador cita los literales string. No se conecta ni ejecuta SQL en una base de datos.

    Importa el subconjunto SQL admitido como JSON

    Elige SQL a JSON, pega SQL o carga un archivo .sql local, selecciona el mismo perfil de dialecto, elige 2 o 4 espacios y pulsa Convertir a JSON. El parser admite como máximo un CREATE TABLE opcional seguido por sentencias INSERT INTO ... (lista completa de columnas) VALUES (...). Lee solo los valores literales de VALUES; no evalúa SQL.

    PostgreSQL admite TEXT, BIGINT, NUMERIC y BOOLEAN. Su perfil de referencia requiere UTF8 y standard_conforming_strings activado; los apóstrofes de los literales se escriben duplicándolos. SQLite admite TEXT, INTEGER, REAL y BOOLEAN. Se rechazan tipos no admitidos, consultas como SELECT, parámetros, defaults, expresiones, volcados de esquema, varias tablas y construcciones ajenas a la gramática publicada. No es un importador SQL general y no se conecta a ninguna de las bases de datos.

    Con CREATE TABLE, el orden y los nombres de sus columnas definen las claves de los objetos JSON. Sin CREATE, la primera lista de columnas de INSERT define ese orden. Las listas posteriores pueden reordenar esas mismas columnas, pero no agregar ni omitir columnas. Cada tupla debe tener la cantidad correspondiente de valores y todas las sentencias deben usar la misma tabla. Una sentencia no válida rechaza toda la entrada; no se devuelven filas parciales. La salida siempre es un array JSON. Un CREATE TABLE sin INSERT produce [] y un aviso. El JSON no incluye nombres de tabla, tipos declarados ni comentarios SQL; por eso no conserva el esquema o los comentarios y no promete una ida y vuelta general al SQL original.

    Precisión numérica y almacenamiento

    Los lexemas numéricos de JSON y SQL se comprueban con el perfil local antes de generar la salida. Se rechazan números que perderían precisión, exceden el rango finito admitido o superan 128 caracteres. El cero negativo se normaliza a cero con un aviso. El almacenamiento SQLite REAL puede redondear decimales y SQLite representa booleanos como enteros. Revisa estas diferencias si otro motor o consumidor leerá el texto exportado. El comportamiento de strings de PostgreSQL se describe para la configuración requerida standard_conforming_strings; la herramienta no comprueba un servidor activo.

    Salida completa, vista previa y límites

    El editor y los archivos seleccionados permanecen en este navegador. Los archivos se leen localmente como UTF-8; el modo JSON acepta .json y el modo SQL acepta .sql. La conversión es explícita y usa un Web Worker local cancelable. No se ejecuta SQL, no se abre una conexión a bases de datos y el texto no se incluye en una URL ni en el almacenamiento del navegador.

    La vista de solo lectura se limita a 20.000 unidades UTF-16. Copiar y descargar usan toda la salida. Si falla el portapapeles, una acción explícita muestra el texto completo para copiarlo manualmente. Las descargas contienen SQL o un array JSON; no exportan un esquema relacional ni comentarios SQL.

    El perfil limita la entrada a 1.000.000 unidades UTF-16 y 4.000.000 bytes UTF-8; cada archivo a 4.000.000 bytes; profundidad JSON a 200 y nodos a 100.000; filas a 10.000; columnas a 200 y posiciones de celda a 75.000; sentencias SQL a 1.001 y tokens a 400.000; identificadores a 63 bytes UTF-8; salida a 2.000.000 unidades UTF-16 y 8.000.000 bytes; trabajo a 4.000.000 unidades y 15.000 ms; y diagnósticos retenidos a 100. También se limitan los detalles de columnas y diagnósticos. Las cotas operan juntas, por lo que una entrada puede alcanzar un límite antes que otro.

    Al cambiar la entrada, modo, opciones, ejemplo o archivo se elimina el resultado anterior. Limpiar conserva la dirección actual y restaura las opciones de ese modo. Los errores, la cancelación, el timeout y los límites no generan salida parcial.