JSONPath-Abfrage

Query, filter and extract data from JSON with JSONPath: $ root, .key, [0], [*] and .. recursive descent.

Häufige Ausdrücke:
Datei hierher ziehen
oder unten auf die Schaltfläche klicken, um eine lokale Datei zu wählen
.json / .txt / .csv, bis 10 MB, wird nur im Browser verarbeitet
Die gesamte Verarbeitung erfolgt in Ihrem Browser; Daten werden nicht an einen Server gesendet.

JSON-Daten mit Pfadausdrücken extrahieren und filtern

Was ist eine JSONPath-Abfrage?

JSONPath ist eine Pfadausdruckssprache zum Lokalisieren und Extrahieren von JSON-Daten. Damit lassen sich benötigte Felder in Objekten, verschachtelten Objekten und Arrays schnell finden und Arrays anhand von Bedingungen filtern. Das Tool eignet sich für API-Antworten, Konfigurationsdateien, Logdaten und andere JSON-Dokumente.

Grundlegende JSONPath-Syntax

$ bezeichnet den JSON-Wurzelknoten. $.users greift auf die Eigenschaft users des Wurzelobjekts zu. $.users[0] ruft das erste Element eines Arrays ab. $.users[*] wählt alle Elemente des Arrays aus. $.users[*].name ruft den Namen jedes Elements im users-Array ab. $..price sucht rekursiv auf beliebigen Ebenen nach einer Eigenschaft namens price.

Array-Indizes können negativ sein. Mit [-1] lässt sich beispielsweise das letzte Array-Element auswählen. Der Platzhalter [*] kann verwendet werden, um alle Elemente eines Arrays abzufragen.

Wie filtert man ein JSON-Array mit JSONPath?

Um Array-Elemente anhand ihrer Feldwerte zu filtern, kann ein [?()]-Ausdruck verwendet werden. Beispielsweise wählt $.users[?(@.age > 18)] alle Benutzer aus, deren Alter größer als 18 ist. @ bezeichnet das aktuelle Array-Element; Eigenschaften können innerhalb der Bedingung über @.field angesprochen werden.

Filterbedingungen unterstützen die Vergleichsoperatoren ==, !=, >, >=, < und <=. Mehrere Bedingungen können mit &&, || und ! kombiniert werden. Klammern können zur Anpassung der Priorität verwendet werden. Beispielsweise filtert $.users[?(@.age >= 18 && @.active == true)] Benutzer, die mindestens 18 Jahre alt und aktiv sind.

Wie liest man die Ergebnisse?

Nach der Abfrage zeigt der Ergebnisbereich die gefundenen Daten zusammen mit ihren Pfaden. Der Pfad wird als JSONPath angegeben, beispielsweise $.users[0].name, sodass nachvollziehbar ist, welches Feld oder Array-Element gefunden wurde.

Zusätzlich wird ein standardmäßiges JSON-Array mit den Ergebnissen bereitgestellt, das kopiert oder als JSON-Datei heruntergeladen werden kann. Die Statistik zeigt die Anzahl der Treffer. Wenn nichts gefunden wurde, wird dies ausdrücklich angezeigt. Um eine zu lange Seite zu vermeiden, werden in den Ergebniskarten maximal 200 Treffer angezeigt; die vollständigen Treffer bleiben jedoch in der JSON-Ausgabe erhalten.

Häufig verwendete JSONPath-Ausdrücke

Die Seite bietet Schaltflächen für häufig verwendete Ausdrücke. Beispiele sind $ für das gesamte JSON, $.users für users, $.users[*].name für alle Benutzernamen, $..price für price auf beliebigen Ebenen und $.users[?(@.age > 18)] für eine Altersfilterung.

Diese Ausdrücke können als Vorlage angepasst werden, indem Feldnamen, Array-Indizes und Filterbedingungen geändert werden. Dadurch eignen sie sich sowohl zum Lernen der JSONPath-Syntax als auch zum schnellen Auffinden realer JSON-Daten.

Wie fragt man eine lokale JSON-Datei ab?

Wechsle zum Tab für Datei-Uploads und ziehe eine .json-Datei auf die Seite oder wähle sie über die Dateiauswahl aus. Die Datei wird direkt im Browser gelesen. Die maximale Größe beträgt 10 MB pro Datei. Nach dem Laden wird die aktuelle JSONPath-Abfrage automatisch ausgeführt.

Was tun, wenn JSONPath keine Ergebnisse liefert?

Wenn der Ausdruck keinen Fehler erzeugt, aber keine Ergebnisse liefert, sollte zuerst die tatsächliche Struktur und der Datentyp des JSON geprüft werden. Wenn users beispielsweise ein Array ist, sollten $.users[*] oder $.users[0] verwendet werden; $.users.name behandelt das Array dagegen fälschlicherweise wie ein Objekt. Um gleichnamige Felder in beliebigen verschachtelten Ebenen zu finden, kann $..name verwendet werden.

Wenn ein Filter keine Ergebnisse liefert, sollten Feldname, Datentyp und Vergleichsbedingung geprüft werden. Die Zahl 18 und der String "18" können beispielsweise zu unterschiedlichen Vergleichsergebnissen führen. Bei Syntaxfehlern sollten $, Punkte, eckige Klammern und ?() auf vollständige und korrekte Schreibweise geprüft werden.

Welchen JSONPath-Umfang unterstützt das Tool?

Unterstützt werden der Wurzelknoten $, Eigenschaftszugriff, Array-Indizes, negative Indizes, der Platzhalter [*], rekursiver Abstieg .. und Filterausdrücke mit [?()]. Filterbedingungen unterstützen ==, !=, >, >=, <, <=, &&, ||, ! und Klammern. Das Tool beansprucht nicht, sämtliche Erweiterungen des vollständigen JSONPath-Standards zu unterstützen.

Wie schreibt man JSONPath?

JSONPath verwendet Pfadausdrücke zum Lokalisieren von JSON-Daten: $ bezeichnet die Wurzel, .key greift auf eine Eigenschaft zu, [0] wählt ein Array-Element aus, [*] trifft auf alle Elemente zu und $..key sucht rekursiv nach gleichnamigen Eigenschaften auf beliebigen Ebenen.

Zum Filtern von Arrays kann ein Ausdruck wie [?(@.age > 18)] verwendet werden. Mit &&, || und ! lassen sich mehrere Bedingungen kombinieren.

  • Unterstützt $, .key, Array-Indizes [0], negative Indizes, [*] und rekursiven Abstieg $..key
  • Unterstützt [?()] Filterausdrücke zum Filtern von JSON-Array-Elementen anhand von Feldwerten
  • Filterbedingungen unterstützen ==, !=, >, >=, <, <= sowie &&, || und !
  • Ergebnisse zeigen gefundene Pfade und Werte und bieten eine standardmäßige JSON-Array-Ausgabe zum Kopieren oder Herunterladen
  • Bei JSON-Datei-Uploads beträgt die maximale Größe 10 MB pro Datei; nach dem Laden wird automatisch die aktuelle Abfrage ausgeführt
  • Die gesamte Verarbeitung erfolgt lokal im Browser, Eingaben werden nicht auf den Server hochgeladen
Um Änderungen zwischen zwei JSON-Dokumenten zu vergleichen, kannst du JSON-Diff verwenden. Zum Zusammenführen mehrerer JSON-Objekte eignet sich JSON zusammenführen. Für die Umwandlung von JSON-Daten in Tabellen kannst du JSON → CSV verwenden. Zur Prüfung einer JSON-Struktur anhand definierter Regeln eignet sich JSON Schema Validierung.
Kommentare 0
Noch keine Kommentare. Schreibe den ersten Kommentar!
avatar
Der Kommentarinhalt darf nicht leer sein
0/255