Pular para o conteúdo
SDETRole
SDETRole

JSON e dados

Testador de JSONPath

Teste expressões JSONPath em JSON real e veja cada resultado e caminho.

Roda inteiramente no seu navegador Sem cadastro

JSON document

0 chars

Result

Paste JSON or load the sample, then type an expression

Results update as you type. Filter expressions are evaluated by a safe interpreter, never with eval.

Syntax cheatsheet

ExpressionMeaningAction
$Root of the document
$.store.bicycleChild by name (dot notation)
$['store']['book']Child by name (bracket notation, for keys with spaces or dashes)
$..authorRecursive descent: every "author" at any depth
$.store.*Wildcard: all children
$.store.book[0]Array index (0-based)
$.store.book[-1:]Last element (slice)
$.store.book[0,2]Union of indexes
$.store.book[1:3]Slice: index 1 up to (not including) 3
$.store.book[?(@.price < 10)]Filter: elements matching a condition
$..book[?(@.isbn)]Filter: elements that have a truthy "isbn"
$..book[?(@.category == 'fiction' && @.price > 10)]Combined conditions with && and ||
$.store.*~Property names instead of values (jsonpath-plus extension)

Filters support @ and $ references, strings, numbers, true/false/null, == != < <= > >=, &&, || and !. Script expressions such as [(@.length-1)] and function calls are not executed.

Sobre esta ferramenta

JSONPath é como a maioria dos frameworks de teste de API extrai valores de uma resposta: o JsonPath do REST Assured, os scripts do Postman, o Karate e muitas bibliotecas de assertion usam as mesmas ideias. Escrever a expressão contra uma resposta real economiza uma rodada de testes falhando. Este testador usa jsonpath-plus com a execução de scripts desativada e avalia expressões de filtro como [?(@.price < 10)] com um pequeno interpretador embutido, então nada do que você cola é executado como código. Cada resultado aparece com seu caminho normalizado, que diz exatamente de onde o valor veio.

Como usar

  1. Cole uma resposta JSON no painel da esquerda ou clique em “Load sample” para o clássico documento da livraria.
  2. Digite uma expressão começando com $; os resultados são atualizados enquanto você digita.
  3. Escolha mostrar valores, caminhos ou ambos e copie o resultado.
  4. Use os botões “Try” do cheatsheet para ver descida recursiva, slices, uniões e filtros em ação.

Perguntas frequentes: Testador de JSONPath

Por que minha expressão funciona aqui e não no REST Assured?

O REST Assured usa Groovy GPath, não o JSONPath de Goessner. O caminho “store.book.findAll { it.price < 10 }.title” em GPath equivale a “$.store.book[?(@.price < 10)].title” aqui. Caminhos simples com pontos são iguais nos dois, mas filtros e curingas usam sintaxes diferentes.

Qual sintaxe de filtro é suportada?

Os filtros podem referenciar o item atual (@) ou a raiz ($), comparar com == != < <= > >=, combinar com && || e ! e usar strings, números, true, false e null. Expressões de script como [(@.length-1)] e chamadas de métodos JavaScript propositalmente não são executadas; use o slice [-1:] para o último elemento.

Por que não encontro resultados mesmo com a chave existindo?

As causas comuns são diferenças de maiúsculas (userId vs userid), falta de [*] quando o valor está dentro de um array, ou uma chave com hífen ou espaço que exige notação de colchetes, como $['first-name'].

Digite para buscar em todo o SDETRole.

Busca de texto completo com Pagefind · roda no seu navegador Abrir página de busca →