这个项目能做什么
Jayway JsonPath 是一个实现 JsonPath 查询语言的 Java 库,允许开发人员使用类似于 XML 的 XPath 的路径表达式从 JSON 文档中提取数据。它是 Stefan Goessner 的 JsonPath 实现的移植版本,可在 Maven Central 上获取。
## 主要特性
- **路径表达式**:支持点表示法(`$.store.book[0].title`)和括号表示法(`$['store']['book'][0]['title']`)来导航 JSON 结构。
- **运算符**:包括通配符(`*`)、深度扫描(`..`)、数组切片(`[start:end]`)和过滤表达式(`[?(<expression>)]`)。
- **函数**:内置函数如 `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' 提问。
评论
0 评分人数达到10人后显示
登录后参与讨论。