Об этом проекте
Jayway JsonPath — это Java-библиотека, реализующая язык запросов JsonPath, позволяющая разработчикам извлекать данные из JSON-документов с помощью выражений пути, аналогичных XPath для XML. Это порт реализации JsonPath Стефана Гёсснера, доступный на Maven Central.
## Ключевые возможности
- **Выражения пути**: Поддерживает точечную нотацию (`$.store.book[0].title`) и скобочную нотацию (`$['store']['book'][0]['title']`) для навигации по структурам JSON.
- **Операторы**: Включает подстановочные знаки (`*`), глубокое сканирование (`..`), срезы массивов (`[start:end]`) и выражения фильтрации (`[?(<выражение>)]`).
- **Функции**: Встроенные функции, такие как `min()`, `max()`, `avg()`, `length()`, `sum()`, `first()`, `last()` и другие, которые можно применять в конце пути.
- **Предикаты фильтрации**: Поддерживает логические операторы (`&&`, `||`, `!`) и операторы сравнения (`==`, `!=`, `<`, `>`, `=~`, `in`, `nin` и т.д.) для сложной фильтрации.
- **Гибкий API**: Предоставляет гибкий `ReadContext` для повторного чтения без повторного разбора JSON-документа.
- **Варианты конфигурации**: Настраивается через флаги `Configuration` и `Option`, такие как `ALWAYS_RETURN_LIST` и `SUPPRESS_EXCEPTIONS`.
- **Несколько провайдеров JSON**: Поставляется с провайдерами для JSON-smart (по умолчанию), Jackson, Gson, JSON-P и JSON-B, что позволяет интегрироваться с различными библиотеками JSON.
- **SPI кэша**: Поддерживает подключаемое кэширование разобранных путей с реализациями по умолчанию, такими как `LRUCache` и `NOOPCache`.
- **Изменение документов**: Позволяет устанавливать, добавлять и удалять значения в JSON-документах с поддержкой изменяемых структур JSON в некоторых провайдерах.
## Пример использования
```java
String json = "...";
List<String> authors = JsonPath.read(json, "$.store.book[*].author");
```
Для повторного чтения разберите один раз:
```java
Object document = Configuration.defaultConfiguration().jsonProvider().parse(json);
String author = JsonPath.parse(document).read("$.store.book[0].author");
```
## Требования
- Версия 3.0.0 требует Java 17 и поддерживает Jackson 3.
- Провайдеры, такие как Jackson, Gson, JSON-P и JSON-B, требуют дополнительные зависимости в пути классов.
## Документация
Для получения дополнительных сведений обратитесь к [официальной документации](http://www.javadoc.io/doc/com.jayway.jsonpath/json-path) и задавайте вопросы на Stack Overflow с тегами 'jsonpath' и 'java'.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.