Testador de JSONPath

Consulte o JSON colado usando seletores e filtros simples de comparação. Cada resultado mostra o valor e seu caminho no documento. Sintaxes não compatíveis são rejeitadas, sem executar expressões JavaScript.

Funciona localmente no seu navegador
Documento JSON
Expressão de consulta

Aceita nomes, notação entre colchetes, índices, curingas, uniões, fatias, seletores descendentes e filtros de comparação simples.

A análise principal da consulta é feita localmente. Expressões não compatíveis retornam um erro claro em vez de recorrer a eval().

Correspondências
Execute uma expressão JSONPath para inspecionar os valores correspondentes.

Como executar uma consulta JSONPath

Cole um documento JSON, escreva uma expressão JSONPath e leia cada correspondência como caminho normalizado ao lado do valor. A consulta roda sobre o texto desta aba: nada é enviado e nenhuma requisição sai da página.

O analisador é próprio desta ferramenta e nunca recorre a eval(). A sintaxe que ele não implementa para com um erro específico: filtros combinados com &&, || ou ! são recusados, assim como comparar um filtro com a raiz do documento.

  1. Cole o documento em Documento JSON ou clique em Carregar exemplo para partir do exemplo da livraria.
  2. Digite a expressão em Expressão de consulta. Os quatro exemplos acima dos botões ($.store.book[*].author, $..price, $.store.book[?(@.price < 10)] e $.store.book[0:2]) preenchem o campo e executam na hora quando já existe um documento carregado.
  3. Clique em Executar consulta. O cartão Correspondências lista uma entrada por nó: à esquerda o caminho normalizado, à direita o valor JSON.
  4. Clique em Copiar JSON do resultado para levar os valores encontrados como um único array JSON, ou em Limpar para esvaziar o documento e reiniciar os resultados.

O que este testador JSONPath aceita

Seletores que funcionam

Nomes, nomes entre colchetes e índices: $.store.book, $["store"]["book"], $['store']['bicycle'], [0], [-1] para o último elemento e uniões como [0,1] ou ['a','b']. Um nome fora de colchetes começa com letra, sublinhado ou $ e segue com letras, dígitos, sublinhado, $ ou hífen; uma chave com ponto ou espaço exige a forma entre colchetes.

Curingas, fatias e descendentes: $.store.*, $..price, [0:2], [::2], [::-1]. As fatias seguem os mesmos limites do Python: um limite negativo conta a partir do fim e um passo negativo percorre de trás para frente.

Filtros: uma comparação por colchete

Um filtro avalia uma única comparação e aceita ==, !=, <, <=, > e >= contra número, texto entre aspas, true, false ou null: [?(@.price < 10)] ou [?(@.title == "Moby Dick")]. Um filtro sem operador mantém os nós em que a propriedade existe e é verdadeira: [?(@.isbn)].

O que o analisador não consegue avaliar é recusado em vez de adivinhado: [?(@.price > 1 && @.price < 10)] responde que filtros combinados não são suportados, [?(@.price > $.expensive)] que um filtro não pode ser comparado com a raiz e uma expressão regular como =~ /a/ que a expressão de filtro não é suportada.

Caminhos, cópia e documentos grandes

Cada correspondência informa o caminho em uma única forma normalizada, $["store"]["book"][0]["author"], qualquer que seja a notação usada na consulta, e o mesmo nó nunca aparece duas vezes. Copiar JSON do resultado devolve os valores encontrados como um único array JSON, pronto para um fixture ou um diff.

O cartão Correspondências mostra os 200 primeiros resultados e informa quantos ficaram de fora; o botão de copiar continua entregando o array completo. Um documento de 50.000 nós responde a uma consulta com curinga em menos de um segundo, e documentos muito aninhados são percorridos sem estourar a pilha.

Ferramentas recentes: