Zähle mit JsonPath

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.