1. Überblick
In diesem kurzen Tutorial erfahren Sie, wie Sie mit JsonPath Objekte und Arrays in einem JSON-Dokument zählen.
JsonPath bietet einen Standardmechanismus zum Durchlaufen bestimmter Teile eines JSON-Dokuments. Wir können sagen, JsonPath ist für JSON, was XPath für XML ist.
2. Erforderliche Abhängigkeiten
Wir verwenden folgende JsonPath Maven-Abhängigkeit, die natürlich unter https://search.maven.org/classic/#search%7Cga% verfügbar ist 7C1% 7Cg% 3A% 22com.jayway.jsonpath% 22[Maven Central]:
<dependency>
<groupId>com.jayway.jsonpath</groupId>
<artifactId>json-path</artifactId>
<version>2.4.0</version>
</dependency>
3. JSON-Beispiel
Die folgenden JSON werden zur Veranschaulichung der Beispiele verwendet:
{
"items":{
"book":[ {
"author":"Arthur Conan Doyle",
"title":"Sherlock Holmes",
"price":8.99
},
{
"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
}
},
"url":"mystore.com",
"owner":"baeldung"
}
4. Zählen Sie JSON-Objekte
Das Wurzelelement wird durch das Dollar-Symbol „ $“ gekennzeichnet. Im folgenden JUnit-Test rufen wir JsonPath.read () mit dem JSON- String und dem JSON-Pfad "$" auf, die wir zählen möchten:
public void shouldMatchCountOfObjects() {
Map<String, String> objectMap = JsonPath.read(json, "$");
assertEquals(3, objectMap.keySet().size());
}
Durch das Zählen der Größe der resultierenden __Map wissen wir, wie viele Elemente sich in der JSON-Struktur am angegebenen Pfad befinden.
5. Zählen Sie die Größe des JSON-Arrays
Im folgenden JUnit-Test fragen wir den JSON ab, um das Array mit allen books unter dem items -Element zu finden:
public void shouldMatchCountOfArrays() {
JSONArray jsonArray = JsonPath.read(json, "$.items.book[** ]");
assertEquals(2, jsonArray.size());
}
6. Schlussfolgerung
In diesem Artikel haben wir einige grundlegende Beispiele zum Zählen von Elementen in einer JSON-Struktur behandelt.
Weitere Pfadbeispiele finden Sie in den https://github.com/json-path/JsonPath#path-examples [official JsonPath-Dokumenten.
Die Codebeispiele finden Sie wie immer unter https://github.com/eugenp/tutorials/tree/master/json-path (GitHub) https://github.com/eugenp/tutorials/tree/master/json -Pfad[Repository].