Cómo aplanar JSON en rutas y volver a construirlo

Pega un documento JSON, elige Aplanar o Restaurar y pulsa Ejecutar. Aplanar convierte cada valor final en una ruta como user.profile.roles.0; Restaurar lee un objeto plano de rutas y reconstruye el documento anidado. El separador puede ser un punto o una barra, y una clave que contiene el separador se escapa con una barra invertida, de modo que user.profile.roles.0 y una clave literal «a.b» siguen siendo distinguibles.

Todo se ejecuta en la página con JavaScript del navegador, no se sube nada y el resultado se puede copiar o descargar como kivtools-json-flatten.json o kivtools-json-unflatten.json.

  1. Pega el JSON en el campo de entrada o pulsa Cargar ejemplo para partir del documento de muestra.
  2. Elige Aplanar para convertir el documento en pares ruta/valor, o Restaurar para reconstruirlo desde rutas.
  3. Elige el separador de ruta: Punto (.) o Barra (/). Las claves que contienen el separador se escapan solas.
  4. Pulsa Ejecutar. El resultado aparece en el campo de salida con el número de rutas, el tamaño en bytes y la profundidad máxima.
  5. Copia o descarga el resultado; pulsa Limpiar para vaciar el formulario.

Qué conserva el analizador, cómo se tratan arrays y conflictos y qué contienen las exportaciones

Qué conserva el analizador

Los valores se copian sin cambiar de tipo: las cadenas siguen siendo cadenas, los números números y null sigue siendo null. Las claves que en JavaScript parecen peligrosas — __proto__, constructor, prototype — aquí son claves de datos normales: la herramienta crea objetos sin prototipo, así que aplanar {"__proto__": 1} conserva la ruta “__proto__” y restaurarla reconstruye la misma clave.

Los objetos y arrays vacíos se conservan por defecto. Desactiva «Conservar objetos y arrays vacíos» para descartarlos; la métrica indica cuántos contenedores se descartaron: 2 para {"keep":{},"drop":[],"value":1}.

Cómo las rutas vuelven a ser arrays

Restaurar reconstruye un array solo cuando un nodo tiene exactamente las claves numéricas densas 0…n-1, que es lo que deja un array real al aplanarse. Las rutas dispersas como 0 y 2, o un nodo que mezcla 0, 1 y x, se quedan como claves de objeto: no se pierde ninguna clave ni se inventan huecos null.

Una ruta que necesita la misma clave de dos formas se avisa en lugar de sobrescribirse en silencio: el objeto plano {"a":1,"a.b":2} responde «La ruta «a.b» entra en conflicto con una clave anterior.» y la salida anterior se borra para que un resultado viejo no se confunda con la nueva ejecución.

Profundidad, tamaño y exportaciones

Aplanar recorre el documento de forma iterativa: un valor anidado 20.000 niveles se convierte en una sola ruta sin desbordar la pila. Reconstruir un documento así alcanza el límite del escritor JSON del navegador, y entonces la herramienta muestra su mensaje localizado de anidamiento excesivo en lugar de un error del motor.

Los errores de sintaxis JSON conservan el detalle de posición del motor (por ejemplo «line 1 column 9») tras un prefijo localizado, que es lo que permite corregir un pegado mal formado. Las descargas se llaman kivtools-json-flatten.json o kivtools-json-unflatten.json según el modo.

Herramientas recientes: