Saltar al contenido
4all.tools

Aplana y reconstruye rutas JSON en tu navegador

Convierte JSON anidado en un mapa de rutas y valores, o reconstruye su estructura a partir del mapa. Procesa archivos en tu navegador.

Espacio de trabajo de la herramienta

Aplanar y reconstruir JSON

Activa JavaScript para procesar JSON localmente en el navegador.

Operación

La raíz es $. Una propiedad simple se escribe $.name; una clave literal con punto usa $["a.b"]; un índice usa $[0]. El mapa plano vacío {} no es válido; {"$":{}} representa un objeto vacío. Hay conflicto cuando una ruta es prefijo de otra, como {"$.a":1,"$.a.b":2}. Se rechazan arrays dispersos, por ejemplo {"$[2]":"x"}. No cualquier mapa con puntos se puede reconstruir sin ambigüedad. La operación inversa vuelve a comprobar los límites.

Usar un resultado cambia a la operación inversa. Se vuelven a comprobar sus límites y no se ejecuta automáticamente.

Archivo: 8.000.000 bytes; entrada: 2.000.000 unidades UTF-16; profundidad: 200; nodos: 100.000; entradas: 50.000; salida: 2.000.000 unidades UTF-16.

Límites de trabajo

Límites de trabajo: 1.000.000 unidades de análisis, 1.000.000 de transformación y 1.000.000 de serialización. Las rutas admiten 200 segmentos, 10.000 unidades cada una y 1.000.000 en total; los índices llegan a 99.999. No se garantizan todos los máximos a la vez.

El procesamiento permanece en este navegador. No hay cargas, URLs remotas, borradores guardados ni contenido del documento en URLs o registros.

Ningún archivo seleccionado

Entrada de ejemplo

Carga el ejemplo de la operación seleccionada.

{"user":{"name":"Ana"},"items":[1,{},[]],"a.b":null,"":true}
Ejemplos de sintaxis de rutas

{"$.user.name":"Ana","$.items[0]":1,"$.items[1]":{},"$.items[2]":[],"$[\"a.b\"]":null,"$[\"\"]":true}

{"$[\"user\"][\"name\"]":"Ana","$[\"items\"][0]":1,"$[\"items\"][1]":{},"$[\"items\"][2]":[],"$[\"a.b\"]":null,"$[\"\"]":true}

Opciones de formato

Listo. Elige una operación y ejecútala para procesar la entrada actual.

    Convierte un JSON anidado en un mapa de rutas

    Aplanar asigna una ruta a cada valor. Resulta útil para revisar documentos con varios niveles o trabajar con datos según su ubicación. Pega JSON o abre un archivo .json UTF-8, elige Aplanar JSON y ejecuta la operación. Para hacer el recorrido inverso, pega el mapa y elige Reconstruir JSON.

    Prueba con este documento:

    {"user":{"name":"Ana"},"items":[1,{},[]],"a.b":null,"":true}

    Con notación de puntos:

    {"$.user.name":"Ana","$.items[0]":1,"$.items[1]":{},"$.items[2]":[],"$[\"a.b\"]":null,"$[\"\"]":true}

    Con notación de corchetes:

    {"$[\"user\"][\"name\"]":"Ana","$[\"items\"][0]":1,"$[\"items\"][1]":{},"$[\"items\"][2]":[],"$[\"a.b\"]":null,"$[\"\"]":true}

    Ambos mapas reconstruyen los datos de entrada. La salida predeterminada usa dos espacios; los ejemplos están minificados para comparar mejor las rutas.

    Cómo leer las rutas

    $ representa la raíz. $.name señala la propiedad name y $[0] el primer elemento de un array. Las comillas importan: $["0"] es una propiedad llamada 0, no un índice. Una clave que contiene un punto, como a.b, se escribe $["a.b"] para conservarlo como parte del nombre.

    La notación con puntos usa corchetes cuando la clave los necesita; la notación con corchetes los usa en todas las propiedades. Puedes reconstruir un mapa con cualquiera de las dos o combinarlas. Estas rutas no admiten filtros, comodines ni intervalos de JSONPath.

    El mapa es un objeto JSON no vacío. Sus valores son primitivas o contenedores vacíos; las rutas indican la estructura que los rodea. Los objetos y arrays vacíos se conservan: {"$.settings":{},"$.items":[]} reconstruye ambos. Una raíz primitiva o vacía usa una sola entrada, como {"$":null}. Un mapa vacío {} no permite saber cuál era el valor raíz.

    Las rutas contradictorias se rechazan. Por ejemplo, {"$.a":1,"$.a.b":2} exige que a sea a la vez un número y un objeto. {"$.a":1,"$[0]":2} mezcla un objeto y un array en la raíz. Los índices deben empezar en cero y ser consecutivos, así que {"$[2]":"x"} tampoco es válido. No se sobrescriben valores si dos rutas, aunque estén escritas de distinta forma, señalan la misma ubicación.

    Números y conversión de ida y vuelta

    La entrada debe ser JSON estricto. Se rechazan comentarios, JSONC, JSON5 y claves duplicadas. Esto incluye claves que se vuelven iguales al decodificar los escapes, como en {"a":1,"\u0061":2}.

    Los números mantienen su escritura original: 9007199254740993, 0.10000000000000001, -0 y 1E+02 no se reescriben. Un aviso de precisión se refiere a su representación interna en JavaScript; no significa que se haya redondeado la salida. Los números fuera del rango admitido, como 1e400, se rechazan.

    Aplanar y reconstruir conserva los valores, las claves, las posiciones de los arrays y la escritura de los números dentro de los límites de la herramienta. El formato, los escapes y el orden de las propiedades pueden cambiar. El resultado usa saltos LF, sin BOM ni salto final.

    Copia el resultado completo

    La vista previa muestra hasta 20.000 unidades UTF-16 y puede terminar a mitad del JSON. Copiar JSON y Descargar JSON incluyen el resultado completo. Si el portapapeles no está disponible, usa el campo de copia manual. Las descargas son archivos UTF-8 llamados json-flattened.json o json-reconstructed.json.

    Usar resultado como entrada coloca toda la salida en el editor y cambia al modo inverso. Ejecuta la operación cuando quieras continuar. Editar la entrada o las opciones retira el resultado anterior; cancelar conserva el texto de entrada.

    Límite Máximo
    Archivo local 8.000.000 bytes
    Texto de entrada o salida 2.000.000 unidades UTF-16
    Contenedores anidados / segmentos de ruta 200
    Valores JSON 100.000
    Entradas del mapa 50.000
    Una ruta 10.000 unidades UTF-16
    Índice de array 99.999
    Tiempo de operación 15 segundos

    Un documento complejo puede alcanzar los límites de procesamiento antes que los de tamaño. Todo se procesa en el navegador; los documentos no se suben ni se guardan.