Rekursion mit einem engen Pfad vergleichen
Das Titelbeispiel folgt nur dem Bucharray. $..price findet zusätzlich den Fahrradpreis. Prüfe die Pfade, um ähnlich benannte Felder aus anderen Bereichen nicht als passende Datensätze zu behandeln.
JSON-Tools
Probiere den Preisfilter aus und prüfe die zugehörigen Pfade. Ohne Automatik lässt sich jede Abfrage gezielt starten.
JSON bleibt im Browser. Nur ausdrücklich gespeicherte Ausdrücke werden lokal abgelegt.
| Normalisierter Pfad | Wert |
|---|
Die Vorschau zeigt höchstens 1.200 Zeichen je Wert. Kopieren und Download enthalten die vollständige gewählte Ansicht.
RFC 9535 · jsonpath-rfc9535 1.3.0 · Keine JavaScript-Ausdrücke
Ergebnis veraltet; Export und Weitergabe sind gesperrt.
Ein JSONPath Tester hilft, wenn dieselben Feldnamen in mehreren Bereichen einer API-Antwort stehen. Der Wert allein verrät dann nicht, aus welchem Datensatz er stammt.
Hier kannst du JSONPath-Ausdrücke testen und JSON abfragen, ohne zwischen Dialekten zu wechseln. Vergleiche einen konkreten Zweig mit einer rekursiven Suche, bevor die Abfrage Teil deines Programms wird.
Der JSONPath Tester zeigt zu jedem Treffer einen normalisierten Pfad wie $['store']['book'][0]. Zwei identische Preise bleiben zwei Treffer mit unterschiedlicher Herkunft. Die Tabelle fasst sie nicht versehentlich zusammen.
Wähle das ursprüngliche Dokument oder das Array gefundener Werte vor der Weitergabe. Objekte können in CSV-Zeilen überführt werden; einzelne Zahlen und Texte lassen sich im Formatierer prüfen. Eine fertige Abfrage startet keine automatische Übertragung.
Das Titelbeispiel folgt nur dem Bucharray. $..price findet zusätzlich den Fahrradpreis. Prüfe die Pfade, um ähnlich benannte Felder aus anderen Bereichen nicht als passende Datensätze zu behandeln.
Automatik wartet 350ms nach einer Änderung. Ohne Automatik funktionieren die Schaltfläche und Ctrl/Cmd+Enter. Sobald JSON oder Ausdruck geändert wird, sind Kopieren, Download und Weitergabe des alten Ergebnisses gesperrt.
Werte werden auch bei genau einem Treffer als Array ausgegeben. Die Pfadansicht exportiert ein Array aus Pfadzeichenfolgen. Bis zu 20 Ausdrücke lassen sich speichern und auf neue Dokumente anwenden; das Laden ersetzt nur den Ausdruck.
$.store.book[?@.price < 10] wählt günstige Bücher. Bedingungen lassen sich mit && und || kombinieren. length, count, match, search und value gehören zum Funktionsumfang; JavaScript-Methoden werden dabei nicht ausgeführt.
Kindnamen, Wildcards, rekursive Suche, negative Indizes, Slices und mehrere Selektoren erreichen unterschiedliche Ausschnitte. Wiederholte Selektoren können einen Knoten mehrfach liefern. Das Ergebnis wird weder dedupliziert noch sortiert.
Eine gültige Abfrage ohne Treffer ergibt []. Ein gefundener Knoten mit dem Wert null ergibt [null]. Bei Syntaxfehlern erscheint dagegen eine eigene Fehlermeldung und der Export bleibt gesperrt.
Die Tabelle wächst in Schritten von 50 Treffern. Jeder Wert zeigt höchstens 1.200 Zeichen; Kopie und Download enthalten dennoch alle akzeptierten Ergebnisse. Vor dem Löschen eines gespeicherten Ausdrucks wird der Eintrag gezeigt; die Löschung lässt sich einmal rückgängig machen.
Verwende @ für den aktuellen Kandidaten und JSONPath-Operatoren statt JavaScript-Methoden. Prüfe außerdem Typ und Schreibweise des Feldes. Der Parser nennt bei Syntaxfehlern Zeile und Spalte, sofern er eine Position liefern kann.
Dieser JSONPath Tester wählt vorhandene Knoten aus. Er verändert weder Werte noch Schlüssel und führt keine Gruppierung aus. Für eine nachfolgende Bearbeitung kannst du die ausgewählten Werte ausdrücklich an ein anderes Werkzeug übergeben.
Der JSONPath Tester nutzt jsonpath-rfc9535 1.3.0 mit RFC 9535. Filter, Slices und Standardfunktionen werden unterstützt. Herstellererweiterungen wie kubectl-Vorlagen oder Skriptausdrücke sind kein Teil dieses Angebots.
JSON Pointer benennt eine einzelne Stelle. JSONPath kann mehrere Knoten anhand von Wildcards und Bedingungen auswählen. Die normalisierten Pfade in dieser Tabelle sind JSONPath-Ausdrücke und keine Pointer nach RFC 6901.
$ steht für die Wurzel des gesamten Dokuments. @ bezeichnet den gerade geprüften Kandidaten innerhalb eines Filters. @.price vergleicht daher den Preis des jeweiligen Buchs, nicht automatisch einen Preis an der Wurzel.
Wird eine Abfrage falsch ausgewertet?
Nutze den JSONPath Tester, um den Buchfilter mit allen rekursiv gefundenen Preisen zu vergleichen. Entscheide erst nach dem Blick auf die Pfade, welcher Ausschnitt weiterverarbeitet werden soll.