Saltar para o conteúdo
4all.tools

Achate e reconstrua caminhos JSON no navegador

Transforme JSON aninhado em um mapa de caminhos e valores ou reconstrua a estrutura a partir do mapa. Processe arquivos no navegador.

Espaço de trabalho da ferramenta

Achatar e reconstruir JSON

Ative o JavaScript para processar JSON localmente no navegador.

Operação

A raiz é $. Uma propriedade simples pode ser escrita como $.name; uma chave literal com ponto usa $["a.b"]; um índice de array usa $[0]. O mapa vazio {} é inválido; {"$":{}} representa um objeto vazio. Há conflito quando um caminho é prefixo de outro, como {"$.a":1,"$.a.b":2}. Arrays esparsos são rejeitados, por exemplo {"$[2]":"x"}. Nem todo mapa com pontos pode ser reconstruído sem ambiguidade. A operação inversa verifica os limites novamente.

Usar um resultado muda para a operação inversa. Os limites são verificados novamente; a operação não é executada automaticamente.

Arquivo: 8.000.000 bytes; entrada: 2.000.000 unidades UTF-16; profundidade: 200; nós: 100.000; entradas: 50.000; saída: 2.000.000 unidades UTF-16.

Limites de trabalho

Limites de trabalho: 1.000.000 unidades de análise, 1.000.000 de transformação e 1.000.000 de serialização. Caminhos aceitam 200 segmentos, 10.000 unidades cada e 1.000.000 no total; índices vão até 99.999. Nem todos os máximos podem ser garantidos ao mesmo tempo.

O processamento permanece neste navegador. Sem envios, URLs remotas, rascunhos salvos ou conteúdo do documento em URLs ou registros.

Nenhum arquivo selecionado

Entrada de exemplo

Carrega o exemplo da operação selecionada.

{"user":{"name":"Ana"},"items":[1,{},[]],"a.b":null,"":true}
Exemplos de sintaxe de caminhos

{"$.user.name":"Ana","$.items[0]":1,"$.items[1]":{},"$.items[2]":[],"$[\"a.b\"]":null,"$[\"\"]":true}

{"$[\"user\"][\"name\"]":"Ana","$[\"items\"][0]":1,"$[\"items\"][1]":{},"$[\"items\"][2]":[],"$[\"a.b\"]":null,"$[\"\"]":true}

Opções de formatação

Pronto. Escolha uma operação e execute para processar a entrada atual.

    Transforme JSON aninhado em um mapa de caminhos

    Achatar atribui um caminho a cada valor. Isso ajuda a examinar documentos com vários níveis ou trabalhar com dados pela sua localização. Cole JSON ou abra um arquivo .json UTF-8, escolha Achatar JSON e execute a operação. Para fazer o caminho inverso, cole o mapa e escolha Reconstruir JSON.

    Experimente este documento:

    {"user":{"name":"Ana"},"items":[1,{},[]],"a.b":null,"":true}

    Com notação de pontos:

    {"$.user.name":"Ana","$.items[0]":1,"$.items[1]":{},"$.items[2]":[],"$[\"a.b\"]":null,"$[\"\"]":true}

    Com notação de colchetes:

    {"$[\"user\"][\"name\"]":"Ana","$[\"items\"][0]":1,"$[\"items\"][1]":{},"$[\"items\"][2]":[],"$[\"a.b\"]":null,"$[\"\"]":true}

    Os dois mapas reconstroem os dados de entrada. A saída padrão usa dois espaços; os exemplos estão minificados para facilitar a comparação dos caminhos.

    Como ler os caminhos

    $ representa a raiz. $.name aponta para a propriedade name e $[0] para o primeiro elemento de um array. As aspas fazem diferença: $["0"] é uma propriedade chamada 0, não um índice. Uma chave com ponto, como a.b, é escrita como $["a.b"] para manter o ponto no nome.

    A notação com pontos usa colchetes quando a chave precisa deles; a notação com colchetes os usa em todas as propriedades. A reconstrução aceita as duas formas, inclusive combinadas. Esses caminhos não aceitam filtros, curingas ou intervalos de JSONPath.

    O mapa é um objeto JSON não vazio. Seus valores são primitivos ou contêineres vazios; os caminhos indicam a estrutura ao redor deles. Objetos e arrays vazios são preservados: {"$.settings":{},"$.items":[]} reconstrói ambos. Uma raiz primitiva ou vazia usa uma única entrada, como {"$":null}. Um mapa vazio {} não identifica o valor da raiz.

    Caminhos conflitantes são rejeitados. Por exemplo, {"$.a":1,"$.a.b":2} exige que a seja um número e um objeto ao mesmo tempo. {"$.a":1,"$[0]":2} mistura objeto e array na raiz. Os índices devem começar em zero e ser consecutivos, portanto {"$[2]":"x"} também é inválido. Caminhos duplicados, mesmo escritos de formas diferentes, são rejeitados sem sobrescrever valores.

    Números e conversão de ida e volta

    A entrada precisa ser JSON estrito. Comentários, JSONC, JSON5 e chaves duplicadas são rejeitados. Isso inclui chaves que se tornam iguais após decodificar os escapes, como em {"a":1,"\u0061":2}.

    Os números mantêm sua escrita original: 9007199254740993, 0.10000000000000001, -0 e 1E+02 não são reescritos. Um aviso de precisão diz respeito à representação interna no JavaScript; ele não significa que a saída foi arredondada. Números fora do intervalo aceito, como 1e400, são rejeitados.

    Achatar e reconstruir preserva valores, chaves, posições dos arrays e escrita dos números dentro dos limites da ferramenta. A formatação, os escapes e a ordem das propriedades podem mudar. O resultado usa quebras LF, sem BOM nem quebra final.

    Copie o resultado completo

    A prévia mostra até 20.000 unidades UTF-16 e pode terminar no meio do JSON. Copiar JSON e Baixar JSON incluem o resultado inteiro. Se a área de transferência não estiver disponível, use o campo de cópia manual. Os arquivos UTF-8 são chamados json-flattened.json ou json-reconstructed.json.

    Usar resultado como entrada coloca toda a saída no editor e muda para a operação inversa. Execute quando quiser continuar. Editar a entrada ou as opções remove o resultado anterior; cancelar mantém o texto de entrada.

    Limite Máximo
    Arquivo local 8.000.000 bytes
    Texto de entrada ou saída 2.000.000 unidades UTF-16
    Contêineres aninhados / segmentos de caminho 200
    Valores JSON 100.000
    Entradas do mapa 50.000
    Um caminho 10.000 unidades UTF-16
    Índice de array 99.999
    Tempo da operação 15 segundos

    Documentos complexos podem atingir os limites de processamento antes dos limites de tamanho. Tudo é processado no navegador; os documentos não são enviados nem salvos.