Über dieses Tool
Mit JSONPath holen die meisten API-Test-Frameworks Werte aus einer Response: JsonPath in REST Assured, Postman-Skripte, Karate und viele Assertion-Bibliotheken nutzen dieselben Konzepte. Wer den Ausdruck gegen eine echte Response schreibt, spart sich eine Runde fehlgeschlagener Testläufe. Dieser Tester nutzt jsonpath-plus mit deaktivierter Skriptausführung und wertet Filterausdrücke wie [?(@.price < 10)] mit einem kleinen eingebauten Interpreter aus. Nichts, was Sie einfügen, wird also als Code ausgeführt. Jeder Treffer wird mit seinem normalisierten Pfad angezeigt, sodass Sie genau sehen, woher der Wert stammt.
So funktioniert es
- Fügen Sie links eine JSON-Response ein oder klicken Sie auf „Load sample“ (Beispiel laden) für das klassische Bookstore-Dokument.
- Geben Sie einen Ausdruck ein, der mit $ beginnt; die Ergebnisse aktualisieren sich während der Eingabe.
- Wählen Sie, ob Werte, Pfade oder beides angezeigt werden, und kopieren Sie das Ergebnis.
- Mit den „Try“-Buttons im Cheatsheet sehen Sie rekursiven Abstieg, Slices, Unions und Filter in Aktion.
FAQ zu JSONPath Tester
Warum funktioniert mein Ausdruck hier, aber nicht in REST Assured?
REST Assured verwendet Groovy GPath, nicht Goessner-JSONPath. Der GPath-Ausdruck „store.book.findAll { it.price < 10 }.title“ entspricht hier „$.store.book[?(@.price < 10)].title“. Einfache Punktpfade sind in beiden gleich, Filter und Wildcards haben aber eine andere Syntax.
Welche Filtersyntax wird unterstützt?
Filter können auf das aktuelle Element (@) oder die Wurzel ($) verweisen, mit == != < <= > >= vergleichen, mit && || und ! verknüpfen sowie Strings, Zahlen, true, false und null verwenden. Skriptausdrücke wie [(@.length-1)] und JavaScript-Methodenaufrufe werden bewusst nicht ausgeführt; für das letzte Element nutzen Sie den Slice [-1:].
Warum erhalte ich keine Treffer, obwohl der Key existiert?
Typische Ursachen sind Unterschiede in der Groß-/Kleinschreibung (userId vs. userid), ein fehlendes [*], wenn der Wert in einem Array liegt, oder ein Key mit Bindestrich oder Leerzeichen, der Klammernotation wie $['first-name'] braucht.