Zum Inhalt springen
SDETRole
SDETRole

JSON & Daten

JSONPath Tester

JSONPath-Ausdrücke an echtem JSON testen, mit allen Treffern und Pfaden.

Läuft vollständig in Ihrem Browser Ohne Anmeldung

JSON document

0 chars

Result

Paste JSON or load the sample, then type an expression

Results update as you type. Filter expressions are evaluated by a safe interpreter, never with eval.

Syntax cheatsheet

ExpressionMeaningAction
$Root of the document
$.store.bicycleChild by name (dot notation)
$['store']['book']Child by name (bracket notation, for keys with spaces or dashes)
$..authorRecursive descent: every "author" at any depth
$.store.*Wildcard: all children
$.store.book[0]Array index (0-based)
$.store.book[-1:]Last element (slice)
$.store.book[0,2]Union of indexes
$.store.book[1:3]Slice: index 1 up to (not including) 3
$.store.book[?(@.price < 10)]Filter: elements matching a condition
$..book[?(@.isbn)]Filter: elements that have a truthy "isbn"
$..book[?(@.category == 'fiction' && @.price > 10)]Combined conditions with && and ||
$.store.*~Property names instead of values (jsonpath-plus extension)

Filters support @ and $ references, strings, numbers, true/false/null, == != < <= > >=, &&, || and !. Script expressions such as [(@.length-1)] and function calls are not executed.

Ü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

  1. Fügen Sie links eine JSON-Response ein oder klicken Sie auf „Load sample“ (Beispiel laden) für das klassische Bookstore-Dokument.
  2. Geben Sie einen Ausdruck ein, der mit $ beginnt; die Ergebnisse aktualisieren sich während der Eingabe.
  3. Wählen Sie, ob Werte, Pfade oder beides angezeigt werden, und kopieren Sie das Ergebnis.
  4. 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.

Tippen Sie, um SDETRole zu durchsuchen.

Volltextsuche mit Pagefind · läuft in Ihrem Browser Suchseite öffnen →