JSONPath-Tester
JSON mit JSONPath-Ausdrücken abfragen und jeden Treffer mit Pfad sehen
Über dieses Tool
Teste JSONPath-Ausdrücke gegen dein eigenes JSON und sieh jeden Treffer mit Wert und konkretem Pfad. Unterstützt wird die Syntax für den Alltagsgebrauch: Punkt- und Klammernotation, Array-Indizes (auch negative), Wildcards, Unions (['a','b']) und rekursiver Abstieg ($..price).
Die Pfadausgabe pro Treffer ist der stille Star: Frage $..id gegen ein tiefes Dokument ab, und jedes Ergebnis sagt dir exakt, wo es liegt ($.data.items[3].id), bereit zum Einfügen in Code. Aus „irgendwo in diesem Blob“ wird eine exakte Adresse.
Filterausdrücke ([?(@.price < 10)]) sind noch nicht implementiert — das Tool sagt das ausdrücklich, statt falsche Ergebnisse zu liefern. Für strukturelle Extraktion, den Großteil der JSONPath-Nutzung, funktioniert alles.
Häufige Fragen
- Was ist der Unterschied zwischen $.a.b und $..b?
- $.a.b folgt genau einer Route: Key a an der Wurzel, dann Key b darin. $..b (rekursiver Abstieg) findet jedes b irgendwo im Dokument, in beliebiger Tiefe. Rekursiver Abstieg ist mächtig, kann aber überraschen — er matcht auch b-Keys in Dingen, an die du nicht gedacht hast.
- Wie greife ich auf Keys mit Leerzeichen oder Bindestrichen zu?
- Klammernotation mit Anführungszeichen: $['my key'] oder $.data['content-type']. Die Punktnotation funktioniert nur für Keys, die gültige bezeichnerartige Namen sind.
- Funktionieren negative Array-Indizes?
- Ja — [-1] ist das letzte Element, [-2] das vorletzte, nach der von Python popularisierten und von RFC 9535 übernommenen Konvention. [0] bleibt das erste Element.
- Ist JSONPath standardisiert?
- Seit 2024 ja — RFC 9535 definiert Syntax und Semantik. Davor geschriebene Implementierungen unterscheiden sich in Randfällen (besonders bei Filtern und Unions) — derselbe Ausdruck kann sich also je nach Library anders verhalten; teste gegen die Implementierung, mit der du deployst.