DevToolPal
DE

JSONPath-Tester

Führen Sie eine JSONPath-Abfrage auf JSON aus und sehen Sie jeden Treffer mit Pfad – mit Filtern und Funktionen (RFC 9535).

Läuft lokal, wird nie hochgeladen

Optionen

Anzeigen

JSON

0 Zeichen · 0 B

Treffer

0 Zeichen · 0 B

Was das Tool macht

JSONPath ist eine Abfragesprache für JSON, vergleichbar mit XPath für XML. Eine Abfrage wie $.store.book[*].title durchläuft ein Dokument und wählt die gewünschten Werte aus. Dieser Tester führt einen JSONPath-Ausdruck auf dem eingefügten JSON aus und listet jeden Treffer als JSON-Array: die gefundenen Werte, ihre normalisierten Pfade (zum Beispiel $['store']['book'][0]['title']) oder beides.

Er folgt RFC 9535, dem 2024 veröffentlichten IETF-Standard, sodass die Ergebnisse denen moderner Bibliotheken in JavaScript, Java, Python, Go und anderen Sprachen entsprechen. Nutzen Sie ihn, um eine Abfrage auszuprobieren, bevor sie in den Code wandert, um herauszufinden, warum ein Filter nichts liefert, oder um einige Felder aus einer großen API-Antwort zu holen.

So geht’s

  1. Fügen Sie JSON in das Feld JSON ein, laden Sie eine .json-Datei hoch oder klicken Sie auf Beispiel, um das klassische Buchladen-Dokument zu laden.
  2. Geben Sie eine Abfrage in JSONPath-Ausdruck ein. Die Treffer werden beim Tippen aktualisiert.
  3. Wählen Sie unter Anzeigen: Werte, Pfade oder Pfad/Wert-Paare.
  4. Kopieren oder laden Sie das Ergebnis herunter. Bei Syntaxfehlern wird das Zeichen angegeben, an dem das Parsen scheiterte.

Syntax-Spickzettel

AusdruckBedeutung
$Die Wurzel des Dokuments
.name oder ['name']Ein Mitglied eines Objekts
[0], [-1]Ein Array-Element (negative Werte zählen vom Ende)
[1:3], [::2]Ein Slice: Start, Ende (exklusiv) und Schrittweite
*Alle Mitglieder oder Elemente
..namename in beliebiger Tiefe
[?@.price < 10]Kinder, für die der Filter wahr ist; @ ist das aktuelle Element

Filter können Bedingungen mit &&, || und ! verknüpfen, mit $ andere Teile des Dokuments vergleichen und Funktionen aufrufen: length(@.tags) > 2, count(@.items[*]) == 0, match(@.code, '[A-Z]{3}'), wenn der ganze String dem regulären Ausdruck entsprechen muss, und search(@.title, 'Ring') für einen Treffer an beliebiger Stelle.

Beispiel

Mit dem Beispiel-Buchladen wählt diese Abfrage die Titel der Bücher unter 10 aus:

$.store.book[?@.price < 10].title

und liefert:

["Sayings of the Century", "Moby Dick"]

Ändern Sie sie in $..book[?@.isbn].author, um die Autoren der Bücher mit ISBN aufzulisten, oder in $..price, um alle Preise im Laden einzusammeln, auch den des Fahrrads.

FAQ

› Welche JSONPath-Syntax wird unterstützt?

Die Standardsyntax aus RFC 9535: Mitgliedsnamen mit Punkt und eckigen Klammern, Wildcards, Array-Indizes (auch negative), Slices, Suche in allen Ebenen mit .., Filter mit Vergleichen und && || ! sowie die Funktionen length(), count(), match(), search() und value(). Die ältere Schreibweise ?(@.price < 10) funktioniert ebenfalls, denn die Klammern gruppieren nur.

› Warum liefert meine Abfrage ein leeres Array?

Ein leeres Array heißt: Die Abfrage ist gültig, aber nichts passt. Prüfen Sie die Mitgliedsnamen (Groß- und Kleinschreibung zählt) und ob ein Wert ein Array oder ein Objekt ist. Mit einer breiten Abfrage wie $..* und Anzeigen auf Pfade sehen Sie, was das Dokument enthält.

› Kann ich Skriptausdrücke wie [(@.length-1)] verwenden?

Nein. Skriptausdrücke führen beliebigen Code aus und gehören nicht zum Standard. Verwenden Sie stattdessen einen negativen Index: [-1] ist das letzte Element, [-2:] sind die letzten beiden.

› Wird mein JSON an einen Server gesendet?

Nein. Die Abfrage wird vom Code der Seite in Ihrem Browser geparst und ausgewertet; nichts wird hochgeladen.