Resolvedor de JSON Pointer (RFC 6901)
Desenvolvimento
Um JSON Pointer é a forma padrão (RFC 6901) de endereçar um único valor dentro de um documento JSON com um caminho separado por barras como /user/roles/0. É o que $ref do JSON Schema, JSON Patch, JSON Merge Patch e muitas ferramentas OpenAPI usam por baixo. Cole um documento e um ponteiro para ver exatamente qual valor ele seleciona, formatado. O resolvedor implementa a especificação com precisão: o ponteiro vazio retorna o documento inteiro, ~1 significa uma barra literal e ~0 um til literal (então uma chave como "a/b" é alcançada com /a~1b), índices de array devem ser 0 ou inteiros sem sinal sem zeros à esquerda, e o token especial "-" não tem valor na leitura. Ponteiros de fragmento URI (#/user/roles/0) são aceitos e decodificados por porcentagem. Também lista cada ponteiro do seu documento com uma prévia do valor, para você clicar e descobrir o caminho exato até qualquer nó. Tudo roda localmente; nada é enviado.
Valor resolvido
"admin"
Ponteiros neste documento (clique para usar)
| (raiz) | {…} (3) |
| /user | {…} (3) |
| /user/id | 42 |
| /user/name | "Ada" |
| /user/roles | […] (2) |
| /user/roles/0 | "admin" |
| /user/roles/1 | "editor" |
| /a~1b | "slash in key" |
| /settings | {…} (2) |
| /settings/theme | "dark" |
| /settings/limits | {…} (1) |
| /settings/limits/max | 100 |
Ponteiro vazio = documento inteiro. Escape / em uma chave como ~1 e ~ como ~0. Fragmentos URI como #/a/b são aceitos.
Como usar
- Cole ou edite o documento JSON.
- Digite um JSON Pointer (ex.: /user/name, ou #/settings/limits/max), ou clique em uma linha da lista de ponteiros.
- Leia o valor resolvido; escape uma barra em uma chave como ~1 e um til como ~0.
Perguntas frequentes
- Como um JSON Pointer difere do JSONPath?
- JSON Pointer (RFC 6901) endereça exatamente um valor com um caminho simples separado por barras e é usado por JSON Schema, JSON Patch e OpenAPI. JSONPath é uma linguagem de consulta que pode casar muitos valores com curingas, filtros e descida recursiva. Use esta ferramenta para o primeiro; o testador JSONPath para o segundo.
- O que são ~0 e ~1?
- Como / separa tokens e ~ é o caractere de escape, uma / literal dentro de uma chave é escrita ~1 e um ~ literal é escrito ~0. Assim o membro "a/b" é alcançado com /a~1b, e "m~n" com /m~0n. Ao desescapar, ~1 é substituído antes de ~0, exatamente como o RFC exige.
- O que o ponteiro vazio retorna?
- Uma string vazia é um ponteiro válido que se refere ao documento inteiro, então retorna o valor JSON completo. Note que "/" não é vazio — é um ponteiro com um token de string vazia, que seleciona o membro cuja chave é a string vazia.
- Por que meu ponteiro não resolveu?
- Razões comuns: o membro ou índice de array não existe, um índice de array tem um zero à esquerda (apenas 0, 1, 2… sem preenchimento são válidos), você usou "-" (que não tem valor na leitura), ou um ponteiro não vazio não começou com /. A mensagem de erro nomeia o token exato que falhou.
Ferramentas relacionadas
Conversor de Base64 para hexadecimal (e volta)
Converta uma string Base64 em bytes hexadecimais e hex de volta para Base64, com suporte URL-safe, no seu navegador.
Codificador e Decodificador Quoted-Printable
Codifique texto para MIME Quoted-Printable (RFC 2045) ou decodifique — com escapes =XX, quebras de linha suaves e UTF-8 — tudo no seu navegador, com quebra de linha em 76 caracteres ao codificar.
Gerador de Hash (SHA)
Gere hashes SHA-1, SHA-256, SHA-384 e SHA-512 a partir de texto.
Codificador / Decodificador de URL
Codifique texto para URLs em porcentagem, ou decodifique URLs em texto.
Codificador / Decodificador Base64
Codifique texto em Base64 ou decodifique Base64 de volta em texto.
Formatador e Validador de JSON
Formate, embeleze, minifique e valide JSON no seu navegador.