JSON-Tools

JSONPath TesterTreffer mit ihrem Ursprung sehen

Probiere den Preisfilter aus und prüfe die zugehörigen Pfade. Ohne Automatik lässt sich jede Abfrage gezielt starten.

JSONPath Tester

JSON-Eingabe

JSON bleibt im Browser. Nur ausdrücklich gespeicherte Ausdrücke werden lokal abgelegt.

Treffer

Normalisierter PfadWert

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.

In einem anderen Tool fortfahren

Nach dem Klick öffnet sich ein neuer Tab. Daten werden im Speicher übergeben, nicht in der URL. Grenze: 500.000 Zeichen.

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.

Warum diesen JSONPath Tester verwenden?

Werte bleiben ihrem Pfad zugeordnet

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.

Zwei ausgewählte Äste eines Datenbaums mit den zugehörigen Werten und Pfaden.

Den passenden Ausschnitt weitergeben

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.

Ein vollständiges Dokument oder ausgewählte Werte werden an eine formatierte Ansicht oder Tabelle übergeben.

Den Suchbereich bewusst festlegen

01

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.

02

Den Ausführungszeitpunkt steuern

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.

03

Die Ergebnisform beachten

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.

Gezielt auf verschachtelte Werte zugreifen

JSONPath Filter mit Standardfunktionen

$.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.

Zugriff passend zur Struktur

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.

Keine Treffer sind kein Syntaxfehler

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.

Vorschau und vollständige Ausgabe

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.

Was der gewählte Dialekt erlaubt

Ein benannter Standarddialekt
Verwendet wird jsonpath-rfc9535 1.3.0 auf Basis von RFC 9535. Erweiterungen von Jayway, Goessner, kubectl oder JSONPath Plus werden nicht pauschal unterstützt. jq, JMESPath, eigene Funktionen und eingebettetes JavaScript sind ausgeschlossen.
Striktes JSON und Zahlengrenzen
Kommentare, JSON5, nachgestellte Kommas und doppelte Schlüssel werden abgewiesen. Das gilt auch für unsichere Ganzzahlen und Zahlenüberläufe. Normale Dezimalzahlen verwenden JavaScript-Zahlen; Exponentschreibweise, Endnullen und negatives Null bleiben nicht erhalten.
Begrenzte Arbeit statt Teilergebnis
Maximal 500.000 Eingabezeichen, Tiefe 100, 50.000 Knoten, 2.000 Ausdruckszeichen, 5.000 Treffer und zusammen 2.000.000 Ausgabezeichen. Nach 2 Sekunden wird der Worker beendet. Bei Überschreitung gibt es keinen unvollständigen Download.
Auswählen statt umformen
Die Abfrage verändert keine Datensätze, gruppiert nicht und baut keine neuen Objekte. CSV nimmt nur ein Objekt oder ein Array ausschließlich aus Objekten an. Skalare Werte werden nicht automatisch in Tabellenzeilen verpackt.
Explizites Speichern und Übergeben
Kein Datei- oder URL-Import, keine Cloud-Synchronisation und keine Links mit Nutzdaten. Gespeichert werden nur ausdrücklich ausgewählte Ausdrücke. Die Weitergabe erfolgt im Speicher an einen neuen gleichursprünglichen Tab, bis 500.000 Zeichen; der Quelltab muss geöffnet bleiben.

Fragen zum JSONPath Tester

Warum funktioniert mein Filter nicht?

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.

Kann JSONPath Daten ändern oder nur abfragen?

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.

Welche JSONPath-Syntax wird unterstützt?

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.

Was unterscheidet JSONPath und JSON Pointer?

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.

Was bedeuten $ und @?

$ 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?

Den Preisfilter ausprobieren

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.