JSONPath Tester
Fügen Sie JSON ein und testen Sie JSONPath-Ausdrücke interaktiv. Sehen Sie Übereinstimmungsergebnisse in Echtzeit mit Beispielpfaden für einen schnellen Einstieg.
Eingabe
Ausgabe
Readme
Was ist JSONPath?
JSONPath ist eine Abfragesprache für JSON, ähnlich wie XPath für XML funktioniert. Sie können damit JSON-Strukturen mithilfe von Pfadausdrücken navigieren und Daten extrahieren. Ein JSONPath-Ausdruck beginnt mit $, das die Wurzel des Dokuments darstellt, und verwendet Punktnotation (.key) oder Klammernotation (['key']) zum Durchlaufen von Objekten sowie [index] für den Zugriff auf Array-Elemente.
JSONPath wurde ursprünglich 2007 von Stefan Gössner beschrieben und ist seitdem zu einem weit verbreiteten Standard in APIs, Test-Frameworks und Datenverarbeitungs-Pipelines geworden. Es wird in vielen Sprachen und Tools unterstützt, darunter JavaScript, Python, Java und Datenbanken wie PostgreSQL und MySQL.
Werkzeugbeschreibung
Mit diesem Tool können Sie ein beliebiges gültiges JSON-Dokument einfügen und einen JSONPath-Ausdruck schreiben, um es abzufragen. Die Ergebnisse werden sofort angezeigt, während Sie eingeben, und zeigen alle übereinstimmenden Werte als formatiertes JSON-Array. Die Anzahl der Treffer wird separat angezeigt, damit Sie schnell überprüfen können, wie viele Knoten ausgewählt wurden.
Beispiele
Eingabe-JSON:
{
"store": {
"book": [
{ "title": "Moby Dick", "price": 8.99, "category": "fiction" },
{ "title": "War and Peace", "price": 12.5, "category": "fiction" },
{
"title": "A Brief History of Time",
"price": 7.99,
"category": "science"
}
]
}
}| Ausdruck | Ergebnis |
|---|---|
$.store.book[*].title |
Alle Buchtitel |
$.store.book[0] |
Erstes Buchobjekt |
$.store.book[?(@.price < 10)] |
Bücher günstiger als $10 |
$.store.book[?(@.category == "fiction")] |
Nur Belletristik-Bücher |
$..price |
Alle Preiswerte überall im Dokument |
Funktionen
- Echtzeitauswertung — Ergebnisse werden aktualisiert, während Sie den Ausdruck eingeben oder das JSON bearbeiten
- Zeigt die Anzahl der Treffer in einem dedizierten Feld an
- Schaltfläche zum Kopieren im Ausdrucksfeld für schnelle Wiederverwendung
- Schaltfläche zum Einfügen für schnelles Einfügen von JSON oder Ausdrücken aus der Zwischenablage
- Fehlerberichterstattung für ungültiges JSON oder fehlerhafte Pfadausdrücke
Funktionsweise
JSONPath-Ausdrücke werden mit der jsonpath-plus-Bibliothek gegen das geparste JSON ausgewertet. Das $-Symbol bezieht sich auf das Wurzelelement. Untergeordnete Knoten werden mit . oder [] aufgerufen, Platzhalter mit *, rekursive Absteigung mit .. und Filter mit [?(...)]. Das Ergebnis ist immer ein Array von übereinstimmenden Werten, auch wenn nur eine Übereinstimmung gefunden wird.
Optionen erklärt
| Syntax | Bedeutung |
|---|---|
$ |
Wurzelelement |
.key oder ['key'] |
Untergeordnete Eigenschaft |
[*] |
Alle Array-Elemente |
[0] |
Erstes Array-Element (nullindexiert) |
[-1] |
Letztes Array-Element |
[0,2] |
Elemente bei Index 0 und 2 |
[0:2] |
Elemente von Index 0 bis 1 (Slice) |
..key |
Rekursive Absteigung — key in beliebiger Tiefe finden |
[?(@.price > 5)] |
Filter — Elemente, bei denen price größer als 5 ist |
@ |
Aktueller Knoten (wird in Filterausdrücken verwendet) |
Anwendungsfälle
- API-Entwicklung — überprüfen Sie, dass ein JSONPath-Selektor, der in einem REST-Client, Test-Suite oder Datenmapping-Tool verwendet wird, die erwarteten Felder aus einer API-Antwort extrahiert
- Datentransformation — identifizieren Sie, welche Werte aus verschachtelten JSON-Payloads extrahiert werden sollen, bevor Sie ein Transformationsskript schreiben
- JSONPath lernen — experimentieren Sie interaktiv mit der Pfadsyntax, um zu verstehen, wie Operatoren wie
..,[*]und[?()]bei echten Daten funktionieren
Tipps
- Verwenden Sie
$..*, um jeden einzelnen Wert im gesamten Dokument zu erhalten — nützlich zum Erkunden unbekannter JSON-Strukturen. - Filterausdrücke unterstützen Vergleiche (
==,!=,<,>,<=,>=) und können auf verschachtelte Eigenschaften verweisen:[?(@.author.name == "Rees")]. - Um eine Eigenschaft unabhängig von ihrer Tiefe zu finden, verwenden Sie die rekursive Absteigung
..:$..titlefindet alletitle-Felder überall im Dokument.