Testador e gerador de JSON Pointer
Cole o documento e um ponteiro como /items/0/name. Use o gerador por segmentos quando os nomes tiverem barras ou tis.
Funciona localmente no seu navegador
Cole o documento e um ponteiro como /items/0/name. Use o gerador por segmentos quando os nomes tiverem barras ou tis.
Funciona localmente no seu navegador
A ferramenta resolve um JSON Pointer RFC 6901 contra um documento JSON e mostra o valor selecionado, os segmentos decodificados do caminho e o tipo desse valor. Um ponteiro é a string vazia, que seleciona o documento inteiro, ou uma sequência de segmentos separados por barras: /users/0/name entra no array users, pega o primeiro elemento e lê name ali.
O gerador por segmentos funciona na direção contrária. Digite um segmento por linha e a ferramenta os une em um ponteiro escapado, de modo que nomes com barra ou til saem como ~1 e ~0 em vez de quebrar o caminho. Tudo roda dentro da página, e Copiar leva o valor resolvido para a área de transferência.
O ponteiro é dividido por barras, e a barra inicial só marca o começo, então //empty aponta para a propriedade cujo nome é a string vazia e /a~1b aponta para a chave a/b. Os dois escapes são ~1 para a barra e ~0 para o til; um til seguido de qualquer outra coisa, inclusive do fim do ponteiro, é recusado com erro em vez de ser lido como literal.
O campo também aceita fragmento de URI: #/users/0/name e a forma percent-encoded #%2Fusers%2F1%2Fname chegam aos mesmos segmentos, e #/a%20b lê a chave a b. Espaços em volta do ponteiro são removidos antes da leitura, então um espaço no fim depois de /a é ignorado.
Posições de array seguem a RFC 6901 à risca: um segmento só conta como índice quando é 0 ou uma sequência de dígitos sem zero à esquerda. /arr/1 seleciona o segundo elemento, enquanto /arr/01, /arr/- e um índice além do fim não são encontrados; o traço que marca o fim de um array no JSON Patch não é um valor legível aqui.
Objetos são comparados pelo nome exato da propriedade própria, então chaves com espaços, letras Unicode ou nomes como __proto__ resolvem como qualquer outra; não há curinga nem busca. O valor aparece conforme o tipo: strings cruas, números e booleanos como JSON, null como null, objetos e arrays formatados, com Tipo de valor e Resolvido nas métricas.
Criar a partir de segmentos escapa cada linha separadamente, une os segmentos com barras e troca ~ por ~0 antes de / por ~1, a ordem que a RFC 6901 exige. Uma lista vazia gera um ponteiro vazio que seleciona o documento inteiro; se o painel do documento estiver vazio, a ação só escreve o ponteiro e informa que ele veio dos segmentos, sem inventar um valor.
As duas direções rodam no navegador: resolver, criar, o exemplo e Copiar não fazem nenhuma requisição de rede, então a ferramenta funciona offline e com dados que não podem sair da máquina. Copiar fica inativo enquanto não há valor na tela: depois de um JSON inválido, de um escape errado ou de um ponteiro que não resolve, o valor anterior é apagado e não pode ser copiado por engano.