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.
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}
Pronto. Escolha uma operação e execute para processar a entrada atual.
Alguns diagnósticos foram omitidos ao atingir o limite.
Prévia da saída
Saída completa para cópia manual
Selecione a saída completa pelo botão abaixo e copie-a deste campo.
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.