Testar JSONPath

Execute uma consulta JSONPath no navegador. Para formatar o documento, use o formatador JSON

O que se pode consultar

JSONPath tira valores de um documento JSON. Esta página corre um subconjunto prático e devolve cada correspondência como JSON. Para arrumar o documento antes, use o formatador JSON.

Como se usa

  1. Cole o JSON na caixa de cima e um caminho em JSONPath. O caminho começa em $.
  2. Converter executa a consulta. A linha ao lado do caminho diz quantas correspondências voltaram.
  3. Mostrar exemplo carrega {"store":{"book":[{"author":"Nigel","price":8},{"author":"Evelyn","price":12}],"bicycle":{"price":19}}} e o caminho $.store.book[*].author. O resultado é um array JSON com Nigel e Evelyn, e a conta é 2.
  4. Os botões de caminho preenchem o mesmo documento se a caixa estiver vazia. $.store.book[?(@.price<10)].author devolve Nigel. $..price devolve 8, 12 e 19.
  5. Limpar tudo esvazia o documento, repõe o caminho em $ e apaga a conta. Copiar resultado copia as correspondências JSON.

Caminhos que esta página aceita

$ é a raiz. .key e ['key'] leem uma propriedade. [n] lê um índice, e um índice negativo conta a partir do fim. [*] lê cada elemento ou propriedade. [start:end:step] fatia um array, sem incluir o fim. [0,2] escolhe esses índices. ..key percorre cada objeto aninhado e junta essa chave.

Um filtro tem a forma [?(@.price<10)] ou [?(@.author=='Nigel')]. As comparações são ==, !=, <, >, <= e >=. O texto compara-se tal como está. A ordem aplica-se aos números. O filtro corre sobre um array. Um caminho desconhecido, ou um JSON que não se lê, é um erro. Zero correspondências é um array vazio válido.

Quando usar

  • Tirar um campo de cada objeto de um array.
  • Ficar com as linhas cujo preço está abaixo de um número.
  • Encontrar cada preço, também os que estão aninhados em objetos diferentes.

Perguntas

Por que o resultado é um array se só há um autor?

Cada consulta devolve a lista de correspondências, por isso um só acerto continua a ser um array de um elemento.

Uma expressão de script funciona?

Os filtros são uma comparação sobre @ e os seus campos. Outra sintaxe de script para com um erro.