在Java中,你可以使用com.jayway.jsonpath
庫來實現JSON路徑查詢。為了精準查詢,你需要確保你的JSON路徑表達式是正確的。以下是一些關于如何使用com.jayway.jsonpath
庫進行精準查詢的示例:
首先,你需要將com.jayway.jsonpath
庫添加到你的項目中。如果你使用Maven,可以在pom.xml
文件中添加以下依賴:
<dependency>
<groupId>com.jayway.jsonpath</groupId>
<artifactId>json-path</artifactId>
<version>2.6.0</version>
</dependency>
如果你使用Gradle,可以在build.gradle
文件中添加以下依賴:
implementation 'com.jayway.jsonpath:json-path:2.6.0'
在你的Java代碼中,需要導入com.jayway.jsonpath
庫中的相關類:
import com.jayway.jsonpath.DocumentContext;
import com.jayway.jsonpath.JsonPath;
import com.jayway.jsonpath.PathNotFoundException;
為了演示如何精準查詢,我們將使用以下示例JSON數據:
{
"store": {
"book": [
{
"category": "reference",
"author": "Nigel Rees",
"title": "Sayings of the Century",
"price": 8.95
},
{
"category": "fiction",
"author": "Evelyn Waugh",
"title": "Sword of Honour",
"price": 12.99
},
{
"category": "fiction",
"author": "Herman Melville",
"title": "Moby Dick",
"isbn": "0-553-21311-3",
"price": 8.99
},
{
"category": "fiction",
"author": "J. R. R. Tolkien",
"title": "The Lord of the Rings",
"isbn": "0-395-19395-8",
"price": 22.99
}
],
"bicycle": {
"color": "red",
"price": 19.95
}
}
}
以下是一些使用com.jayway.jsonpath
庫進行精準查詢的示例:
String json = "..."; // 示例JSON數據
DocumentContext documentContext = JsonPath.parse(json);
List<String> authors = documentContext.read("$.store.book[*].author");
System.out.println(authors);
String json = "..."; // 示例JSON數據
DocumentContext documentContext = JsonPath.parse(json);
List<String> booksWithPriceLessThan10 = documentContext.read("$.store.book[?(@.price < 10)]");
System.out.println(booksWithPriceLessThan10);
String json = "..."; // 示例JSON數據
DocumentContext documentContext = JsonPath.parse(json);
List<String> fictionBooks = documentContext.read("$.store.book[?(@.category == 'fiction')]");
System.out.println(fictionBooks);
String json = "..."; // 示例JSON數據
DocumentContext documentContext = JsonPath.parse(json);
String bookWithIsbn = documentContext.read("$.store.book[?(@.isbn == '0-553-21311-3')]");
System.out.println(bookWithIsbn);
注意:在這些示例中,$
符號表示JSON對象的根元素。你可以根據需要修改JSON路徑表達式以實現更精準的查詢。