O que é JSONPath?

JSONPath é uma linguagem de consulta para JSON, similar a como XPath funciona para XML. Permite navegar e extrair dados de uma estrutura JSON usando expressões de caminho. Uma expressão JSONPath começa com $, que representa a raiz do documento, e usa notação de ponto (.key) ou notação de colchetes (['key']) para percorrer objetos, e [index] para acessar elementos de array.

JSONPath foi originalmente descrito por Stefan Gössner em 2007 e desde então se tornou um padrão amplamente utilizado em APIs, frameworks de testes e pipelines de processamento de dados. É suportado em muitas linguagens e ferramentas, incluindo JavaScript, Python, Java e bancos de dados como PostgreSQL e MySQL.

Descrição da ferramenta

Esta ferramenta permite colar qualquer documento JSON válido e escrever uma expressão JSONPath para consultá-lo. Os resultados são exibidos instantaneamente conforme você digita, mostrando todos os valores correspondentes como um array JSON formatado. A contagem de correspondências é exibida separadamente para que você possa verificar rapidamente quantos nós foram selecionados.

Exemplos

JSON de entrada:

{
  "store": {
    "book": [
      { "title": "Moby Dick", "price": 8.99, "category": "fiction" },
      { "title": "War and Peace", "price": 12.5, "category": "fiction" },
      {
        "title": "A Brief History of Time",
        "price": 7.99,
        "category": "science"
      }
    ]
  }
}
Expressão Resultado
$.store.book[*].title Todos os títulos de livros
$.store.book[0] Primeiro objeto de livro
$.store.book[?(@.price < 10)] Livros mais baratos que $10
$.store.book[?(@.category == "fiction")] Apenas livros de ficção
$..price Todos os valores de preço em qualquer lugar do documento

Recursos

  • Avaliação em tempo real — os resultados são atualizados conforme você digita a expressão ou edita o JSON
  • Exibe a contagem de correspondências em um campo dedicado
  • Botão de cópia no campo de expressão para reutilização rápida
  • Botão de colar para inserir rapidamente JSON ou expressões da área de transferência
  • Relatório de erros para JSON inválido ou expressões de caminho malformadas

Como funciona

As expressões JSONPath são avaliadas contra o JSON analisado usando a biblioteca jsonpath-plus. O símbolo $ refere-se ao elemento raiz. Nós filhos são acessados com . ou [], curingas com *, descida recursiva com .. e filtros com [?(...)]. O resultado é sempre um array de valores correspondentes, mesmo que apenas uma correspondência seja encontrada.

Opções explicadas

Sintaxe Significado
$ Elemento raiz
.key ou ['key'] Propriedade filha
[*] Todos os elementos do array
[0] Primeiro elemento do array (indexado a partir de zero)
[-1] Último elemento do array
[0,2] Elementos nos índices 0 e 2
[0:2] Elementos do índice 0 a 1 (slice)
..key Descida recursiva — encontrar key em qualquer profundidade
[?(@.price > 5)] Filtro — elementos onde price é maior que 5
@ Nó atual (usado dentro de expressões de filtro)

Casos de uso

  • Desenvolvimento de API — verificar se um seletor JSONPath usado em um cliente REST, suite de testes ou ferramenta de mapeamento de dados extrai os campos esperados de uma resposta de API
  • Transformação de dados — identificar quais valores extrair de payloads JSON aninhados antes de escrever um script de transformação
  • Aprender JSONPath — experimentar a sintaxe de caminho interativamente para entender como operadores como .., [*] e [?()] se comportam em dados reais

Dicas

  • Use $..* para obter cada valor único em todo o documento — útil para explorar estruturas JSON desconhecidas.
  • Expressões de filtro suportam comparações (==, !=, <, >, <=, >=) e podem referenciar propriedades aninhadas: [?(@.author.name == "Rees")].
  • Para corresponder uma propriedade independentemente de sua profundidade, use descida recursiva ..: $..title encontra todos os campos title em qualquer lugar do documento.