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.
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
Conversor de Base64 a hexadecimal (y vuelta)
Convierte una cadena Base64 a bytes hexadecimales y hex de vuelta a Base64, con soporte URL-safe, en tu navegador.
Codificador y Decodificador Quoted-Printable
Codifica texto a MIME Quoted-Printable (RFC 2045) o decodifícalo — con escapes =XX, saltos de línea suaves y UTF-8 — todo en tu navegador, con ajuste de línea a 76 caracteres al codificar.
Generador de Hash (SHA)
Genera hashes SHA-1, SHA-256, SHA-384 y SHA-512 a partir de texto.
Codificador / Decodificador de URL
Codifica texto para URLs en porcentaje, o decodifica URLs a texto.
Codificador / Decodificador Base64
Codifica texto a Base64 o decodifica Base64 a texto al instante.
Formateador y Validador de JSON
Formatea, embellece, minifica y valida JSON en tu navegador.