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'.