Achatar / Desachatar JSON (notação de pontos)
Desenvolvimento
Cole JSON e alterne entre dois modos. Achatar reduz um objeto ou array aninhado a um objeto plano cujas chaves são caminhos como `app.server.ports[0]` — útil para variáveis de ambiente, caminhos de atualização do MongoDB, arquivos de mensagens i18n, colunas CSV ou comparar duas configurações. Desachatar faz o inverso, expandindo chaves planas de notação de pontos de volta a uma estrutura aninhada. Escolha o delimitador (`.`, `/`, `_`, `-`) e se os arrays usam notação de colchetes (`items[0]`) ou índices com pontos (`items.0`). Objetos e arrays vazios são preservados como folhas, então um ciclo achatar → desachatar devolve exatamente o que você colocou. Tudo roda localmente — seu JSON nunca sai do navegador.
Saída · 9 chaves
{
"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
}Achatar e desachatar são inversos exatos a menos que uma chave de objeto contenha o delimitador — troque o delimitador se suas chaves têm pontos.
Como usar
- Escolha Achatar ou Desachatar.
- Cole seu JSON na caixa de entrada.
- Defina o delimitador e a notação de arrays conforme seu formato alvo e copie o resultado.
Perguntas frequentes
- A conversão é reversível?
- Sim, para dados normais. Achatar e depois desachatar com o mesmo delimitador e notação de arrays devolve um objeto idêntico — objetos/arrays vazios e valores null são mantidos como folhas, então nada se perde. A única exceção está abaixo.
- E se uma chave de objeto contiver o delimitador?
- Então o ciclo fica ambíguo: uma chave como `a.b` achatada com o delimitador `.` não se distingue de `a` → `b` aninhado, então desachatar vai dividi-la. Se suas chaves contêm pontos, escolha outro delimitador (ex.: `/`) que não apareça nelas.
- Como os índices de array são tratados?
- No modo colchetes os arrays viram `list[0]`, `list[1]`; no modo pontos viram `list.0`, `list.1`. Ao desachatar, qualquer índice entre colchetes ou um segmento puramente numérico é reconstruído como elemento de array, então uma chave plana `users.0.name` produz um array de objetos.
- Ele modifica meus tipos de dados?
- Não. Números, booleanos, null e strings são preservados exatamente como valores JSON; apenas a estrutura de chaves muda. A indentação de saída (0/2/4 espaços) só afeta a formatação, não o conteúdo.
Ferramentas relacionadas
Conversor de Base64 para hexadecimal (e volta)
Converta uma string Base64 em bytes hexadecimais e hex de volta para Base64, com suporte URL-safe, no seu navegador.
Codificador e Decodificador Quoted-Printable
Codifique texto para MIME Quoted-Printable (RFC 2045) ou decodifique — com escapes =XX, quebras de linha suaves e UTF-8 — tudo no seu navegador, com quebra de linha em 76 caracteres ao codificar.
Gerador de Hash (SHA)
Gere hashes SHA-1, SHA-256, SHA-384 e SHA-512 a partir de texto.
Codificador / Decodificador de URL
Codifique texto para URLs em porcentagem, ou decodifique URLs em texto.
Codificador / Decodificador Base64
Codifique texto em Base64 ou decodifique Base64 de volta em texto.
Formatador e Validador de JSON
Formate, embeleze, minifique e valide JSON no seu navegador.