Aplanar / Desaplanar JSON (notación de puntos)
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.
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
- Elige Aplanar o Desaplanar.
- Pega tu JSON en el cuadro de entrada.
- 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
JSON Ordenar Claves
Ordena las claves de un objeto JSON alfabéticamente. Opcionalmente recursivo en objetos anidados para canonicalizar todo el documento.
Conversor de Escapes Unicode
Codifica texto a \uXXXX, U+XXXX o entidades HTML — y decodifica cualquiera de ellos a texto. Gestiona emojis y caracteres astrales.
Decodificador CBOR (notación diagnóstica)
Decodifica CBOR (RFC 8949) desde hex o base64 a notación diagnóstica legible — enteros, cadenas de bytes y texto, arrays, mapas, etiquetas, flotantes, valores simples y elementos de longitud indefinida — todo en tu navegador.
Formateador y Validador de JSON
Formatea, embellece, minifica y valida JSON en tu navegador.
Decodificador JWT
Decodifica un JSON Web Token para ver su cabecera, claims y expiración.
Visor de Diferencias de JSON
Compara dos documentos JSON estructuralmente — mira exactamente qué claves se añadieron, quitaron o cambiaron.