JSON Flatten
Achate JSON aninhado para chaves em notação de ponto ou reverta para a estrutura aninhada.
Flattened JSON
Paste JSON to flatten into dot-notation keys.
O que é JSON Flatten?
Uma ferramenta de flatten/unflatten de JSON transforma estruturas JSON entre aninhadas e planas. Achatar converte objetos profundamente aninhados em um objeto de nível único com chaves em notação de ponto (por exemplo user.address.city vira user.address.city, ou user[0].address.city para arrays). Desachatar (unflatten) reverte esse processo, reconstruindo a estrutura aninhada original a partir das chaves em notação de ponto. Isso é útil para processamento de dados, transformações de API, conversão de dados hierárquicos para formatos tabulares, ou quando você precisa consultar propriedades aninhadas com buscas de chave simples. Arrays são preservados com notação de colchetes — user.tags[0] refere-se ao primeiro elemento do array tags. A ferramenta mostra estatísticas de redução de profundidade, para que você veja quanta complexidade foi removida ou restaurada.
Como usar JSON Flatten
- Cole seu JSON aninhado no painel esquerdo para achatar, ou JSON plano para desachatar.
- Alterne entre os modos Flatten e Unflatten usando o botão de alternância.
- A saída achatada usa notação de ponto (.) para objetos aninhados e notação de colchetes ([]) para arrays.
- O unflatten reconstrói a estrutura original a partir das chaves em notação de ponto.
- As estatísticas mostram a profundidade original, a profundidade achatada e a contagem total de chaves.
Exemplos
Objeto aninhado → Achatado
Entrada
{ "user": { "name": "Alice", "address": { "city": "San Francisco", "zip": "94102" } } }
Saída
{ "user.name": "Alice", "user.address.city": "San Francisco", "user.address.zip": "94102" }
Array → Achatado com colchetes
Entrada
{ "users": [ { "name": "Alice", "role": "admin" }, { "name": "Bob", "role": "user" } ] }
Saída
{ "users[0].name": "Alice", "users[0].role": "admin", "users[1].name": "Bob", "users[1].role": "user" }
Erros comuns
- Assumir que chaves achatadas perdem informação de tipo — as chaves achatadas são strings (por exemplo user.address.city), mas os valores associados mantêm seus tipos originais. Números, booleanos, null, objetos e arrays são todos preservados corretamente.
- Achar que o unflatten pode reverter colisões arbitrárias de chaves — se o achatamento criar colisões de chaves (por exemplo, tanto a.b quanto a['b'] mapeando para a mesma chave achatada), o unflatten não consegue restaurar ambos os originais. Use nomes de propriedades consistentes no seu JSON de origem para evitar isso.
- Esperar ordenação ou classificação na saída achatada — as chaves achatadas aparecem na ordem em que foram vistas em uma travessia de profundidade. A ordem é determinística, mas não alfabética (a.b.c vem antes de a.b.d porque visitamos a propriedade c antes de d, não por ordenação alfabética).
Por que usar esta ferramenta
- Conversão bidirecional — achate JSON aninhado para um único nível e depois desachate de volta à estrutura original. As estatísticas mostram a redução de profundidade e a contagem de chaves.
- Preservação de arrays — a notação de colchetes (users[0].name) preserva a estrutura do array, facilitando referenciar elementos específicos ou reconstruir os arrays originais.
- Acesso simples por consulta — JSON achatado permite acessar qualquer propriedade aninhada com uma única busca de chave, sem loops aninhados ou travessia recursiva.