JSONPath-Tester
Testen Sie JSONPath-Ausdrücke sofort mit Ihren JSON-Daten mit unserem kostenlosen Online-Evaluierungstool. Schreiben Sie JSONPath-Abfragen, um bestimmte Datenelemente aus komplexen JSON-Strukturen zu extrahieren und während der Eingabe Echtzeitergebnisse anzuzeigen. Egal, ob Sie die JSONPath-Syntax erlernen, API-Antwortextraktionen debuggen, Datenpipelines konfigurieren, Automatisierungsregeln erstellen oder verschachtelte JSON-Dokumente untersuchen - dieser interaktive Tester bietet sofortiges Feedback mit übereinstimmenden Werten, die im Dokumentbaum hervorgehoben sind. Unterstützt alle standardmäßigen JSONPath-Funktionen, einschließlich Filterausdrücken, rekursivem Abstieg, Array-Slicing und Platzhalterauswahl.
Was ist
JSONPath Tester ist ein interaktives Entwicklungstool zum Schreiben, Testen und Debuggen von JSONPath-Ausdrücken für JSON-Dokumente in Echtzeit. JSONPath ist eine Abfragesprache für JSON, die XPath für XML ähnelt und eine prägnante Syntax zum Navigieren und Extrahieren bestimmter Teile von JSON-Datenstrukturen bietet. Es wurde ursprünglich von Stefan Goessner entworfen und ist seitdem in verschiedenen Implementierungen in verschiedenen Programmiersprachen standardisiert (Jayway JSONPath für Java, jsonpath-ng für Python, JSONPath Plus für JavaScript). Unser Tester unterstützt die vollständige JSONPath-Spezifikation, einschließlich: root selection ($), child selection (.schlüssel oder ['Schlüssel']), Platzhalter (* für alle Elemente), rekursiver Abstieg (.. um alle Ebenen zu durchsuchen), Array-Indizierung ([n]), Array-Slicing ([Start: Ende: Schritt]), Filterausdrücke (@.feld == Wert oder @.feld > n), Skriptausdrücke, Vereinigung von Indizes oder Schlüsseln und Zeichenfolgenfunktionen (wie .Länge()). Das Tool bietet Syntaxvalidierung für JSONPath-Ausdrücke, hebt ungültige Ausdrücke vor der Auswertung hervor und zeigt Ergebnisse sowohl im Array-Format (wie von JSONPath zurückgegeben) als auch in der Baumansicht an, die zeigt, wo Übereinstimmungen in der Dokumentstruktur auftreten.
Wie zu verwenden
- Fügen Sie Ihr JSON-Dokument in das JSON-Datenfeld auf der linken Seite der Benutzeroberfläche ein oder geben Sie es ein
- Geben Sie Ihren JSONPath-Ausdruck in das Abfrageeingabefeld oben ein, wobei Sie die Standard-JSONPath-Syntax verwenden, die mit $ für das Stammelement beginnt
- Beobachten Sie, wie das Echtzeit-Ergebnisfenster während der Eingabe automatisch aktualisiert wird und alle übereinstimmenden Werte anzeigt, die aus Ihrem JSON-Dokument extrahiert wurden
- Durchsuchen Sie das Fenster übereinstimmende Werte, um das genaue Ergebnisfeld anzuzeigen, das Ihr Ausdruck im Code zurückgeben würde
- Verwenden Sie das Fehler- / Debugfenster unter der Eingabe, um alle JSONPath-Syntaxfehler mit Positionsanzeigen für eine schnelle Fehlerbehebung anzuzeigen
Beispiele
Eingabe: JSON: {store:{book:[{title:A},{title:B}]}} Path: $.store.book[*].title
Prozess: Navigate root.store.book → Wildcard * all items → Extract .title
Ergebnis: ["A", "B"]
Eingabe: Path: $..price (recursive descent)
Prozess: Recursively search all levels → Match key 'price' → Collect values
Ergebnis: [9.99, 14.50, 7.00]
Verwandte Suchen
Leute suchen auch nach: jsonpath, json-Pfadtester, jsonpath-Evaluator, jsonpath-Abfrage, jsonpath-Ausdruck, json-Datenextraktion.
jsonpathjson-Pfadtesterjsonpath-Evaluatorjsonpath-Abfragejsonpath-Ausdruckjson-Datenextraktionjson-Abfragesprachejson-Filter
Häufig gestellte Fragen
Was ist JSONPath und wann sollte ich es an Stelle von nativem Code verwenden?
JSONPath ist eine Abfragesprache für JSON, mit der Sie prägnante Ausdrücke schreiben können, um Daten aus verschachtelten JSON-Strukturen auszuwählen, zu filtern und zu extrahieren, ohne Schleifen und bedingte Logik zu schreiben. Sie sollten JSONPath verwenden, wenn Sie Datenextraktionsregeln in externen Dateien, Tools oder deklarativen Spezifikationen konfigurieren müssen, anstatt sie in Ihrer Anwendung fest zu codieren. Häufige Anwendungsfälle sind: Konfigurieren von API Gateway-Antworttransformationen (wie AWS API Gateway-Zuordnungsvorlagen), Schreiben von Datenextraktionsregeln für ETL-Pipelines, in die Geschäftsanalysten JSONPath-Ausdrücke schreiben können, Implementieren dynamischer Filterung in Dashboard- und Berichterstellungstools, Auswählen von Testdaten-Fixtures aus komplexem JSON in automatisierten Tests und Erstellen von Low-Code / No-Code-Tools, bei denen Benutzer Datenextraktionen ohne Codierung angeben. Programmiersprachenbibliotheken kompilieren JSONPath-Ausdrücke zur Laufzeit, sodass Sie eine dynamische, konfigurierbare Datenextraktion ohne erneute Bereitstellung erhalten.
Wie lautet die Syntax für grundlegende und erweiterte JSONPath-Ausdrücke?
Grundlegende JSONPath-Ausdrücke beginnen mit $ (root), verwenden .schlüssel für den Objekt-Kind-Zugriff ($..speichern.buch[0].titel navigiert zum ersten Buchtitel in einem Geschäft), verwenden Sie [n] für die Array-Indizierung, verwenden Sie [*] für Array-Platzhalter und verwenden Sie .. für rekursiven Abstieg (finden Sie alle Titelfelder auf jeder Verschachtelungsebene). Erweiterte Ausdrücke enthalten Filterprädikate [@.preis> 10 zum Filtern von Arrays nach Bedingungen], Array-Slicing [0: 5: 2 für start: Ende: Schritt], Vereinigungsoperatoren [0,2,4 für mehrere Indizes], Längenfunktionen zum Ermitteln von Array-Größen und Klammernotation ['key'] für Schlüssel, die Sonderzeichen oder Leerzeichen enthalten. Beispielsweise: $.speichern.buch[?(@.preis < 10)].titel wählt Titel von Büchern unter $ 10 und $ aus..[?(@.category == fiction)] wählt auf jeder Verschachtelungsebene alle Objekte aus, deren Kategoriefeld Fiction entspricht.
Wie unterscheidet sich JSONPath von XPath und JSON Pointer?
JSONPath ist von XPath (für XML) inspiriert, aber für das einfachere Datenmodell von JSON vereinfacht: JSONPath verwendet $ für root anstelle von XPaths /, uses .schlüssel anstelle der untergeordneten Achse von XPath / key, unterstützt .. für rekursiven Abstieg ähnlich dem von XPath // und enthält Filterausdrücke, die den Prädikaten von XPath ähneln. JSON Pointer (RFC 6901) ist ein viel einfacherer Standard, der einen einzelnen spezifischen Wert in einem JSON-Dokument mithilfe von /separated /keys / und / 0 / array / Indizes identifiziert. Im Gegensatz zu JSONPath, das mehrere Werte zurückgeben und Ergebnisse filtern kann, gibt der JSON-Zeiger immer genau einen Wert zurück oder schlägt fehl. JSONPath ist die richtige Wahl, wenn Sie mehrere übereinstimmende Werte extrahieren, rekursiv navigieren, Ergebnisse filtern oder Abfragen dynamisch angeben müssen. Der JSON-Zeiger ist einfacher und angemessener, wenn Sie einen bestimmten Wert eindeutig identifizieren (wie bei JSON-Patch-Operationen oder OpenAPI $ ref-Referenzen).
Kann ich JSONPath in verschiedenen Programmiersprachen verwenden?
Ja, JSONPath-Bibliotheken sind für die meisten gängigen Programmiersprachen verfügbar. Bemerkenswerte Implementierungen sind: Jayway JSONPath für Java (die vollständigste Implementierung mit den meisten Funktionen, weit verbreitet über Spring Boot), jsonpath-ng und jsonpath-python für Python, JSONPath Plus für JavaScript (Knoten.js und Browser, die von diesem Tool verwendet werden), GoJSONGo für Go, rust-jsonpath für Ruby und JSON::Path für Perl. Die meisten Implementierungen folgen der gleichen Syntax, weisen jedoch subtile Unterschiede in der Unterstützung von Filterausdrücken, dem Verhalten des rekursiven Abstiegs und der Behandlung von Randfällen auf. Testen Sie beim Portieren von JSONPath-Ausdrücken zwischen Sprachen gründlich, da sich Filterausdrücke mit komplexen Bedingungen möglicherweise anders verhalten. Einige Implementierungen sind näher an der ursprünglichen Goessner-Spezifikation, während andere dem neueren IETF RFC 9535 Draft Standard für JSONPath folgen, der im Februar 2024 veröffentlicht wurde.
Warum gibt mein JSONPath-Ausdruck leere Ergebnisse zurück?
Häufige Ursachen für leere JSONPath-Ergebnisse sind: falsche Pfaddurchquerung (überprüfen Sie, ob jede Ebene Ihres Pfads im Dokument vorhanden ist), Beachtung der Groß- und Kleinschreibung (JSON-Schlüssel beachten die Groß- und Kleinschreibung, Name unterscheidet sich von Name), fehlende rekursive Abstiegsschritte (verwenden Sie .. wenn Sie die genaue Verschachtelungstiefe nicht kennen), falsche Array-Indizes (JSON-Arrays sind nullindiziert, daher ist [0] das erste Element), fehlende Anführungszeichen in Klammernotation (sollte ['key'] nicht [key] sein), Syntaxfehler für Filterausdrücke (verwenden Sie @ not $, um auf den aktuellen Knoten in Filtern zu verweisen) und Ergebnisknoten, die null oder undefiniert sind (JSONPath kann in einigen Implementierungen Nullknoten überspringen). Beginnen Sie damit, Ihren Ausdruck auf einen einfachen Pfad zu vereinfachen und zu überprüfen, ob er Ergebnisse zurückgibt, und fügen Sie dann schrittweise die Komplexität hinzu. Verwenden Sie die Baumansicht unseres Testers, um zu überprüfen, ob die Dokumentstruktur Ihren Erwartungen entspricht, bevor Sie komplexe Ausdrücke erstellen.