Sobre o projeto
Jayway JsonPath é uma biblioteca Java que implementa a linguagem de consulta JsonPath, permitindo que desenvolvedores extraiam dados de documentos JSON usando expressões de caminho semelhantes ao XPath para XML. É um port da implementação de Stefan Goessner e está disponível no Maven Central.
## Principais Recursos
- **Expressões de Caminho**: Suporta notação de ponto (`$.store.book[0].title`) e notação de colchetes (`$['store']['book'][0]['title']`) para navegar em estruturas JSON.
- **Operadores**: Inclui curingas (`*`), varreduras profundas (`..`), fatiamento de arrays (`[start:end]`) e expressões de filtro (`[?(<expression>)]`).
- **Funções**: Funções integradas como `min()`, `max()`, `avg()`, `length()`, `sum()`, `first()`, `last()` e outras, que podem ser aplicadas no final de um caminho.
- **Predicados de Filtro**: Suporta operadores lógicos (`&&`, `||`, `!`) e operadores de comparação (`==`, `!=`, `<`, `>`, `=~`, `in`, `nin`, etc.) para filtragem complexa.
- **API Fluente**: Fornece um `ReadContext` flexível para leituras repetidas sem reanalisar o documento JSON.
- **Opções de Configuração**: Personalizável via `Configuration` e flags `Option`, como `ALWAYS_RETURN_LIST` e `SUPPRESS_EXCEPTIONS`.
- **Múltiplos Provedores JSON**: Inclui provedores para JSON-smart (padrão), Jackson, Gson, JSON-P e JSON-B, permitindo integração com várias bibliotecas JSON.
- **SPI de Cache**: Suporta cache plugável para caminhos analisados, com implementações padrão como `LRUCache` e `NOOPCache`.
- **Modificação de Documentos**: Permite definir, adicionar e excluir valores em documentos JSON, com suporte a estruturas JSON mutáveis em certos provedores.
## Exemplo de Uso
```java
String json = "...";
List<String> authors = JsonPath.read(json, "$.store.book[*].author");
```
Para leituras repetidas, analise uma vez:
```java
Object document = Configuration.defaultConfiguration().jsonProvider().parse(json);
String author = JsonPath.parse(document).read("$.store.book[0].author");
```
## Requisitos
- A versão 3.0.0 requer Java 17 e suporta Jackson 3.
- Provedores como Jackson, Gson, JSON-P e JSON-B exigem dependências adicionais no classpath.
## Documentação
Para mais detalhes, consulte a [documentação oficial](http://www.javadoc.io/doc/com.jayway.jsonpath/json-path) e faça perguntas no Stack Overflow com as tags 'jsonpath' e 'java'.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.