Como achatar JSON em caminhos e reconstruí-lo

Cole um documento JSON, escolha Achatar ou Restaurar e clique em Executar. Achatar transforma cada valor final em um caminho como user.profile.roles.0; Restaurar lê um objeto plano de caminhos e reconstrói o documento aninhado. O separador pode ser ponto ou barra, e uma chave que contém o separador é escapada com barra invertida, então user.profile.roles.0 e uma chave literal “a.b” continuam distinguíveis.

Tudo roda na página com JavaScript do navegador, nada é enviado, e o resultado pode ser copiado ou baixado como kivtools-json-flatten.json ou kivtools-json-unflatten.json.

  1. Cole o JSON no campo de entrada ou clique em Carregar exemplo para partir do documento de exemplo.
  2. Escolha Achatar para transformar o documento em pares caminho/valor, ou Restaurar para reconstruí-lo a partir de caminhos.
  3. Escolha o separador de caminho: Ponto (.) ou Barra (/). Chaves que contêm o separador são escapadas automaticamente.
  4. Clique em Executar. O resultado aparece no campo de saída com a contagem de caminhos, o tamanho em bytes e a profundidade máxima.
  5. Copie ou baixe o resultado; clique em Limpar para zerar o formulário.

O que o analisador preserva, como arrays e conflitos são tratados e o que as exportações contêm

O que o analisador preserva

Os valores são copiados sem trocar de tipo: strings continuam strings, números continuam números e null continua null. Chaves que parecem perigosas em JavaScript — __proto__, constructor, prototype — aqui são chaves de dados comuns: a ferramenta cria objetos sem protótipo, então achatar {"__proto__": 1} mantém o caminho “__proto__” e restaurá-lo reconstrói a mesma chave.

Objetos e arrays vazios são mantidos por padrão. Desligue “Manter objetos e arrays vazios” para descartá-los; a métrica então informa quantos contêineres foram descartados — 2 para {"keep":{},"drop":[],"value":1}.

Como os caminhos voltam a ser arrays

Restaurar reconstrói um array apenas quando um nó tem exatamente as chaves numéricas densas 0…n-1, que é o que um array real deixa ao ser achatado. Caminhos esparsos como 0 e 2, ou um nó que mistura 0, 1 e x, permanecem como chaves de objeto: nenhuma chave é perdida e nenhum buraco null é inventado.

Um caminho que precisa da mesma chave em duas formas é avisado em vez de sobrescrito em silêncio: o objeto plano {"a":1,"a.b":2} responde “O caminho “a.b” conflita com uma chave anterior.”, e a saída anterior é apagada para que um resultado antigo não seja confundido com a nova execução.

Profundidade, tamanho e exportações

Achatar percorre o documento de forma iterativa: um valor aninhado em 20.000 níveis vira um único caminho sem estourar a pilha. Reconstruir um documento assim alcança o limite do escritor JSON do navegador, e a ferramenta mostra sua mensagem localizada de aninhamento excessivo em vez de um erro bruto do motor.

Erros de sintaxe JSON mantêm o detalhe de posição do motor (por exemplo “line 1 column 9”) depois de um prefixo localizado, o que permite corrigir uma colagem malformada. Os downloads se chamam kivtools-json-flatten.json ou kivtools-json-unflatten.json conforme o modo.

Ferramentas recentes: