Voltar às atualizações
New releaseAug 17, 2026

JSONPath v10.4.1

Um fork do JSONPath de http://goessner.net/articles/JsonPath/

Compartilhar

npm

testing badge coverage badge

Known Vulnerabilities

Licenses badge

Node.js CI status

(veja também licenças para deps. de desenvolvimento)

JSONPath Plus

Analise, transforme e extraia seletivamente dados de documentos JSON (e objetos JavaScript).

jsonpath-plus expande a especificação original para adicionar alguns operadores adicionais e torna explícitos alguns comportamentos que a original não especificou.

Experimente a demo no navegador ou o Runkit (Node).

Por favor, observe: este projeto não está atualmente em manutenção ativa. Podemos aceitar PRs bem documentados ou algumas atualizações simples, mas não estamos procurando fazer correções ou adicionar novos recursos por conta própria.

Recursos

  • Compatível com a especificação jsonpath original
  • Adições ou elaborações convenientes não fornecidas na especificação original:
    • ^ para obter o pai de um item correspondente
    • ~ para obter os nomes de propriedades dos itens correspondentes (como array)
    • Seletores de tipo para obter:
      • Tipos JSON básicos: @null(), @boolean(), @number(), @string(), @array(), @object()
      • @integer()
      • O tipo composto @scalar() (que também aceita undefined e números não finitos ao consultar objetos JavaScript, bem como todos os tipos básicos não-objeto/não-função)
      • @other() utilizável em conjunto com um otherTypeCallback definido pelo usuário
      • Tipos não JSON que podem, ainda assim, ser usados ao consultar objetos JavaScript não JSON (@undefined(), @function(), @nonFinite())
    • @path/@parent/@property/@parentProperty/@root seletores abreviados em filtros
    • Escapamento
      • ` para escapar a sequência restante
      • Sintaxe @['...']/?@['...'] para escapar caracteres especiais em nomes de propriedades em filtros
    • Documenta $.. (obtendo todos os componentes-pai)
  • Formatos de exportação ESM e UMD
  • Além dos valores consultados, pode retornar várias meta-informações incluindo caminhos ou ponteiros para o valor, bem como o objeto pai e o nome da propriedade pai (para permitir modificação).
  • Utilitários para conversão entre caminhos, arrays e ponteiros
  • Opção para impedir avaliações permitidas na especificação original ou fornecer uma sandbox para valores avaliados.
  • Opção para callback manipular os resultados conforme são obtidos.

Benchmarking

jsonpath-plus tem desempenho consistentemente bom com conjuntos de dados grandes e pequenos comparado a outras bibliotecas de consulta json, conforme json-querying-performance-testing. Você pode verificar essas conclusões executando o projeto você mesmo e adicionando mais casos de desempenho.

Instalação```shell

npm install jsonpath-plus

## Configuração

### Node.js```js
const {JSONPath} = require('jsonpath-plus');

const result = JSONPath({path: '...', json});

Para uso no navegador, você pode incluir diretamente dist/index-browser-umd.cjs; não é necessária nenhuma mágica do Browserify:```html

### ESM (Navegadores modernos)

Você também pode usar imports de módulos ES6 (para navegadores modernos):```html
<script type="module">

import {
    JSONPath
} from './node_modules/jsonpath-plus/dist/index-browser-esm.js';

const result = JSONPath({path: '...', json: {}});

</script>

ESM (Empacotadores)

Ou se você está empacotando seu JavaScript (por exemplo, com Rollup), basta usar, observando que mainFields deve incluir browser para builds de navegador (para Node, o padrão, que verifica module, deve ser suficiente):```js import {JSONPath} from 'jsonpath-plus';

const result = JSONPath({path: '...', json});

## Uso

A assinatura completa disponível é:```
const result = JSONPath([options,] path, json, callback, otherTypeCallback);

Os argumentos path, json, callback e otherTypeCallback podem ser expressos alternativamente (junto com quaisquer outras propriedades disponíveis) em options.

Note que result conterá todos os itens encontrados (opcionalmente envolvidos em um array), enquanto callback pode ser usado se desejar realizar alguma operação à medida que cada item for descoberto, com a função de callback sendo executada de 0 a N vezes, dependendo do número de itens independentes a serem encontrados no resultado. Consulte a documentação abaixo para saber mais sobre os argumentos disponíveis de JSONPath.

Veja também a documentação da API.

Propriedades

As propriedades que podem ser fornecidas no objeto de opções ou no método evaluate (como primeiro argumento) incluem:

Categorias