Neste artigo
O que é achatamento JSON?
O achatamento JSON converte um objeto JSON profundamente aninhado em uma estrutura plana de chave-valor usando caminhos com notação de pontos. Cada valor folha no objeto original recebe um caminho único como 'user.address.city' que descreve sua posição na hierarquia.
A operação inversa, desachatamento, pega os caminhos com notação de pontos e reconstrói a estrutura aninhada original. Juntos, achatar e desachatar permitem transformar JSON entre representações aninhadas e planas sem perder dados.
Como funciona o achatamento JSON
O algoritmo de achatamento percorre recursivamente a árvore JSON, construindo uma string de caminho enquanto desce em objetos e arrays aninhados.
- Percurso recursivo — o algoritmo percorre cada chave no objeto, adicionando cada chave a um caminho crescente separado por pontos
- Notação de índice de array — elementos de array usam notação de colchetes como 'items[0].name' para preservar sua posição
- Coleção de folhas — quando um valor primitivo (é alcançado, o caminho completo e o valor são armazenados como um par chave-valor plano
Experimente gratuitamente — sem cadastro
Achatar ou desachatar JSON →Quando usar o achatamento JSON
JSON achatado é útil quando você precisa trabalhar com dados aninhados em sistemas que só suportam estruturas planas ou comparar estruturas complexas.
- Armazenamento em banco de dados — armazene configurações aninhadas em tabelas chave-valor planas sem alterações de esquema
- Exportação CSV — converta registros JSON aninhados em linhas planas adequadas para importação em planilhas
- Comparação de configuração — achate dois arquivos de configuração e compare as chaves planas para detectar rapidamente as alterações
Perguntas frequentes
O achatamento preserva os tipos de dados?
Sim. Todos os valores primitivos (strings, números, booleanos, null) são preservados exatamente. Arrays se tornam caminhos indexados como 'items[0]', e objetos aninhados se tornam caminhos separados por pontos. O desachatamento reconstrói os tipos originais.
O que acontece com aninhamento muito profundo?
O achatador lida com qualquer profundidade de aninhamento. Objetos muito profundos produzem strings de caminho longas, mas não há limite funcional. A maioria das implementações usa abordagens iterativas para evitar problemas de pilha de chamadas.
Posso achatar JSON com chaves duplicadas?
JSON não permite chaves duplicadas no mesmo nível pela especificação. Se seu parser as aceitar, apenas o último valor para cada chave sobrevive ao parsing. O achatador trabalha no objeto parseado, então os duplicados já estão resolvidos.