Ferramentas JSON

JSON Pointerum endereço, um valor

Escolha uma operação. Só a localização de valores precisa do documento JSON.

JSON Pointer

Documento JSON

Texto do Pointer

Prévia do resultado

A cópia e o download contêm apenas o resultado principal completo: valor JSON, array de tokens, Pointer gerado ou token transformado. Os detalhes de referência não são incluídos.

As entradas ficam na memória do navegador e não são enviadas nem salvas.

Simples: entrada vazia seleciona a raiz; / seleciona uma chave vazia. Fragmento: inclua # e use codificação percentual UTF-8. Espaços e quebras de linha importam e não são removidos.

Execute novamente para atualizar o resultado. Copiar e baixar ficam desativados enquanto ele estiver desatualizado.

JSON Pointer permite validar um endereço antes de procurá-lo em um documento. Uma sintaxe válida não garante que o destino exista. Uma chave ausente causa erro; null, false e uma string vazia podem ser valores encontrados corretamente.

Um ponteiro JSON percorre chaves e índices de array por meio de tokens. O escape de tokens e a codificação de um fragmento URI são etapas diferentes. A ferramenta não exibe uma árvore completa nem pesquisa por aproximação.

Por que usar JSON Pointer?

Separe raiz e chave vazia

JSON Pointer usa a string vazia para a raiz. / indica uma chave de nome vazio, enquanto /items/0 indica o primeiro item de um array. Os tokens deixam claro que esses endereços selecionam lugares diferentes.

Três ponteiros coloridos indicam a moldura externa, um valor com símbolo de chave vazado e o primeiro item de um array.

Confira cada camada de codificação

JSON Pointer aplica escape a ~ e / dentro dos tokens. O fragmento URI acrescenta codificação percentual UTF-8. As referências mostram as duas formas; cada camada é decodificada uma única vez.

Tokens geométricos recebem símbolos de proteção e depois aparecem como grupos de pequenos blocos de bytes.

Escolha a entrada adequada

01

Valide a sintaxe sem documento

Analisar só precisa do Pointer. Gerar usa strings: [] é a raiz, [""] uma chave vazia; [0] é rejeitado. Apenas ao localizar, o contêiner de origem define se "0" representa uma chave ou um índice.

02

Defina a representação

O Pointer simples não decodifica porcentagens. O fragmento começa com # e seus bytes são decodificados antes da divisão por /. #/a%2Fb gera dois tokens; #/a~1b aponta para a chave a/b. + continua sendo um sinal de mais.

03

Revise antes de copiar

Ctrl/Cmd+Enter executa a operação. A exportação leva o resultado principal, sem referências. Alterações deixam o resultado desatualizado. Exemplo e limpeza exigem prévia de substituição; Desfazer restaura entradas, opções e saída.

Leia e construa endereços

Cinco operações específicas

JSON Pointer analisa um endereço, localiza um valor ou gera um caminho a partir de tokens. Duas outras operações aplicam e removem escape de um token. Só localizar lê o documento JSON; os demais modos ignoram seu conteúdo.

Chaves exatas e índices canônicos

Chaves são comparadas sem normalizar Unicode nem alterar maiúsculas. Arrays exigem índices canônicos a partir de 0. Um objeto pode conter as chaves "01" ou "-", embora esses tokens não selecionem um item existente de array.

Números sem arredondamento

Inteiros grandes, decimais precisos, expoentes e -0 preservam sua grafia. Não há conversão de ponto flutuante. Contêineres selecionados continuam como estruturas JSON completas, sem transformar objetos em strings.

Uma única remoção de escape

~01 vira ~1, nunca /. Sequências inválidas mostram o token, numerado a partir de 1. Fragmentos exigem UTF-8 válido; %252F vira %2F sem uma segunda decodificação.

Limites e casos especiais

Sem consultas ou alterações
Não executa JSONPath, filtros, curingas ou JSON Patch. Não oferece árvore completa, importação de arquivos ou busca por URL. O endereço vazio seleciona a raiz, não uma lista de caminhos. Destinos ausentes causam erro.
JSON estrito e orçamentos
Cada entrada relevante aceita 500.000 caracteres; resultado principal e metadados juntos têm o mesmo limite. Máximo de 100.000 por token ou Pointer simples, 1.000 tokens, profundidade 100, 50.000 nós e 1.000 caracteres por número. Comentários, BOM, vírgulas finais e chaves repetidas são rejeitados.
Um token não é um caminho inteiro
Aplicar escape recebe um token bruto. Remover escape espera ~0 e ~1 e rejeita / literal. Espaços e finais CRLF são preservados. Não há remoção automática de espaços ou de aspas JSON externas.
Fragmentos URI estritos
É obrigatório usar # e sequências %HH UTF-8 válidas. Espaços, caracteres não ASCII e outro # sem codificação são proibidos. A decodificação percentual vem antes da divisão dos tokens e da remoção única de ~. A referência gerada pode usar uma grafia canônica diferente.
Substitutos UTF-16 isolados
Um resultado simples pode preservar um substituto isolado em memória, mas copiar e baixar em UTF-8 ficam bloqueados. Seu fragmento fica indisponível e gerá-lo explicitamente falha. O array de tokens JSON escapados da análise e a saída JSON continuam seguros para exportação.

Perguntas sobre JSON Pointer

Como um JSON Pointer difere do JSONPath?

JSONPath pode selecionar vários valores com filtros e curingas. JSON Pointer indica um único endereço exato. Esta ferramenta não executa expressões de consulta nem cria valores padrão para caminhos ausentes.

O que são ~0 e ~1?

~0 representa ~, e ~1 representa / dentro de um token. Na remoção, ~1 é tratado antes de ~0, sem repetir o processo: ~01 se torna o texto ~1, não uma barra.

O que o ponteiro vazio retorna?

Na forma simples, a entrada vazia seleciona todo o documento. Na forma de fragmento, # seleciona a raiz. / e #/ apontam para uma propriedade cujo nome é vazio; não são sinônimos da raiz.

Por que meu ponteiro não resolveu?

Confira a representação escolhida, os escapes e a existência do destino. Arrays não aceitam zeros iniciais, índices negativos ou - para leitura. Também não é possível continuar atravessando um valor escalar. Erros de documento JSON são informados separadamente.

A ferramenta suporta a extração de caminhos JSON Pointer?

Você pode localizar um valor e conferir seu endereço, ou gerar um Pointer a partir de tokens explícitos. Não há extração de todos os caminhos nem árvore interativa; essa tarefa pertence à ferramenta de chaves e caminhos.

Um endereço trouxe um resultado inesperado?

Experimente um endereço

Teste JSON Pointer com o exemplo e compare raiz, tokens e fragmento antes de copiar o resultado principal completo.