AZ Tools

Aplanar / Desaplanar JSON (notación de puntos)

Desarrollo

Pega JSON y alterna entre dos modos. Aplanar colapsa un objeto o array anidado en un objeto plano cuyas claves son rutas como `app.server.ports[0]` — útil para variables de entorno, rutas de actualización de MongoDB, archivos de mensajes i18n, columnas CSV o comparar dos configuraciones. Desaplanar hace lo inverso, expandiendo claves planas de notación de puntos de vuelta a una estructura anidada. Elige el delimitador (`.`, `/`, `_`, `-`) y si los arrays usan notación de corchetes (`items[0]`) o índices con puntos (`items.0`). Los objetos y arrays vacíos se conservan como hojas, así que un ciclo aplanar → desaplanar devuelve exactamente lo que pusiste. Todo corre localmente — tu JSON nunca sale del navegador.

Arrays:

Salida · 9 claves

{
  "app.name": "demo",
  "app.version": "1.2.0",
  "app.features[0]": "search",
  "app.features[1]": "export",
  "app.server.host": "localhost",
  "app.server.ports[0]": 8080,
  "app.server.ports[1]": 8081,
  "flags.beta": true,
  "flags.maxUsers": 100
}

Aplanar y desaplanar son inversos exactos salvo que una clave de objeto contenga el delimitador — cambia de delimitador si tus claves tienen puntos.

Cómo usar

  1. Elige Aplanar o Desaplanar.
  2. Pega tu JSON en el cuadro de entrada.
  3. Configura el delimitador y la notación de arrays según tu formato objetivo y copia el resultado.

Preguntas frecuentes

¿La conversión es reversible?
Sí, para datos normales. Aplanar y luego desaplanar con el mismo delimitador y notación de arrays devuelve un objeto idéntico — los objetos/arrays vacíos y los valores null se conservan como hojas, así que nada se pierde. La única excepción está abajo.
¿Y si una clave de objeto contiene el delimitador?
Entonces el ciclo es ambiguo: una clave como `a.b` aplanada con el delimitador `.` no se distingue de `a` → `b` anidado, así que desaplanar la dividirá. Si tus claves contienen puntos, elige otro delimitador (p. ej. `/`) que no aparezca en ellas.
¿Cómo se manejan los índices de array?
En modo corchetes los arrays son `list[0]`, `list[1]`; en modo puntos son `list.0`, `list.1`. Al desaplanar, cualquier índice entre corchetes o un segmento puramente numérico se reconstruye como elemento de array, así que una clave plana `users.0.name` produce un array de objetos.
¿Modifica mis tipos de datos?
No. Números, booleanos, null y cadenas se conservan exactamente como valores JSON; solo cambia la estructura de claves. La indentación de salida (0/2/4 espacios) solo afecta el formato, no el contenido.

Herramientas relacionadas