JSONPath-Tester
JSONPath-Ausdrücke im Browser an eigenem JSON testen: Filter, Slices, rekursiver Abstieg, Pfade und JSON Pointer, mit fertigen Beispielen.
So testen Sie einen JSONPath-Ausdruck
- Fügen Sie Ihr JSON in „JSON-Daten“ ein oder klicken Sie auf „Beispieldaten laden“, um das klassische Buchladen-Beispiel zu verwenden.
- Geben Sie einen Ausdruck in „JSONPath-Ausdruck“ ein oder wählen Sie einen unter „Beispiele“.
- Das Ergebnis aktualisiert sich während der Eingabe; „Abfrage ausführen“ startet die Auswertung erneut. Die Statuszeile zeigt die Anzahl der Treffer.
- Wechseln Sie mit „Anzeigen“ zwischen „Werte“, „Pfade“, „JSON Pointer“ und „Pfade und Werte“ und kopieren Sie dann das Ergebnis.
JSONPath-Syntax auf einen Blick
| Syntax | Bedeutung | Beispiel |
|---|---|---|
$ |
die Wurzel des Dokuments | $ |
.name oder ['name'] |
ein Kindelement | $.store.bicycle |
* |
alle Kindelemente | $.store.* |
.. |
rekursiver Abstieg, in beliebiger Tiefe | $..author |
[n] |
Array-Index, ab 0 | $..book[2] |
[start:end:step] |
Slice; negative Zahlen zählen vom Ende | $..book[-1:] |
[a,b] |
Vereinigung | $..book[0,1] |
[?(expr)] |
Filter | $..book[?(@.price < 10)] |
^ |
das Elternelement jedes Treffers | $..book[?(@.price > 20)]^ |
~ |
der Eigenschaftsname statt des Werts | $.store.*~ |
Die Ergebnisse erscheinen in Dokumentreihenfolge. „Pfade“ liefert normalisierte Pfade wie $['store']['book'][0]['title'], „JSON Pointer“ die Form nach RFC 6901, /store/book/0/title – praktisch für JSON Patch oder für die Fehlerpfade von JSON-Schema-Validatoren.
Filterausdrücke: was unterstützt wird
Filter werden mit jsonpath-plus im sicheren Modus ausgewertet: Der Ausdruck wird von einem kleinen Interpreter geparst und ausgeführt und nie an eval oder new Function übergeben. Innerhalb von [?( … )] können Sie Folgendes verwenden:
@für das aktuelle Element,@.fieldund@['field']für seine Eigenschaften,@rootfür das ganze Dokument ($ist innerhalb eines Filters nicht verfügbar);- die Vergleiche
==,!=,===,!==,<,<=,>,>=; - die Logik
&&,||,!, die Arithmetik+ - * / %und den ternären Operatora ? b : c; - Literale für Zeichenketten, Zahlen,
true,false,nullund reguläre Ausdrücke; - Methoden der Werte selbst, zum Beispiel
@.title.startsWith('S'),@.tags.includes('new')oder@.title.match(/lord/i); @property(Schlüssel oder Index des aktuellen Elements),@parentund@path(sein normalisierter Pfad) im Stil von jsonpath-plus.
Der Zugriff auf constructor, __proto__ und den Function-Konstruktor ist gesperrt. Scheitert ein Filter an einem einzelnen Element, etwa @.isbn.startsWith('0') bei einem Buch ohne isbn, gilt dieses Element einfach als kein Treffer; ein Syntaxfehler im Ausdruck wird dagegen gemeldet. Filter in der Schreibweise von RFC 9535, also [?@.price < 10] ohne Klammern, werden akzeptiert und als [?(@.price < 10)] gelesen. Die Funktionen von RFC 9535 wie length(), count(), match() und search() stehen nicht zur Verfügung: Verwenden Sie stattdessen JavaScript-Methoden wie @.name.length.
Auch die Typselektoren von jsonpath-plus funktionieren am Ende eines Pfads: $..*@number() liefert alle Zahlen, und @string(), @boolean(), @array(), @object(), @null() sowie @integer() tun dasselbe für andere Typen.
Häufige Fragen
Wird mein JSON an einen Server gesendet?
Nein. Parsen und Auswerten passieren in Ihrem Browser, Ihre Daten verlassen Ihren Rechner nie.
Warum liefert mein Filter nichts?
Prüfen Sie, ob der Pfad vor dem Filter ein Array oder Objekt auswählt: $.store.book[?(@.price < 10)] filtert die Bücher, während $.store[?(@.price < 10)] die Einträge book und bicycle betrachtet. Eine Eigenschaft, die einem Element fehlt, ist undefined, Vergleiche damit sind also falsch.
Was ist der Unterschied zwischen `==` und `===`?
Wie in JavaScript wandelt == Typen um ("10" == 10 ist wahr), während === Typ und Wert vergleicht.
Warum ist die Ausgabe begrenzt?
Damit die Seite flüssig bleibt, werden nur die ersten 10.000 Treffer in das Ergebnis geschrieben; die Statuszeile nennt die vollständige Anzahl.
Ist JSONPath standardisiert?
Ja, seit 2024 durch RFC 9535. Die Implementierungen unterscheiden sich aber weiterhin, besonders bei Filtern. Dieses Tool folgt jsonpath-plus, also der Syntax des ursprünglichen JSONPath von Stefan Goessner.
Ähnliche Tools
- JSON-Formatierer und -Validator Kostenloser JSON-Formatierer und Validator: JSON im Browser formatieren, minifizieren und prüfen – Syntaxfehler mit Zeile und Spalte.
- JSON-Schema-Validator JSON-Dokument im Browser gegen ein JSON Schema validieren. Jeder Fehler wird mit Instanzpfad, Schlüsselwort und Schemapfad aufgelistet.
- Regex-Tester Regex online testen: JavaScript-Ausdrücke live prüfen, mit hervorgehobenen Treffern, Erfassungsgruppen, Ersetzen und Erklärung jedes Bestandteils.