Was ist JSONPath?

JSONPath ist eine Abfragesprache für JSON, ähnlich wie XPath für XML funktioniert. Sie können damit JSON-Strukturen mithilfe von Pfadausdrücken navigieren und Daten extrahieren. Ein JSONPath-Ausdruck beginnt mit $, das die Wurzel des Dokuments darstellt, und verwendet Punktnotation (.key) oder Klammernotation (['key']) zum Durchlaufen von Objekten sowie [index] für den Zugriff auf Array-Elemente.

JSONPath wurde ursprünglich 2007 von Stefan Gössner beschrieben und ist seitdem zu einem weit verbreiteten Standard in APIs, Test-Frameworks und Datenverarbeitungs-Pipelines geworden. Es wird in vielen Sprachen und Tools unterstützt, darunter JavaScript, Python, Java und Datenbanken wie PostgreSQL und MySQL.

Werkzeugbeschreibung

Mit diesem Tool können Sie ein beliebiges gültiges JSON-Dokument einfügen und einen JSONPath-Ausdruck schreiben, um es abzufragen. Die Ergebnisse werden sofort angezeigt, während Sie eingeben, und zeigen alle übereinstimmenden Werte als formatiertes JSON-Array. Die Anzahl der Treffer wird separat angezeigt, damit Sie schnell überprüfen können, wie viele Knoten ausgewählt wurden.

Beispiele

Eingabe-JSON:

{
  "store": {
    "book": [
      { "title": "Moby Dick", "price": 8.99, "category": "fiction" },
      { "title": "War and Peace", "price": 12.5, "category": "fiction" },
      {
        "title": "A Brief History of Time",
        "price": 7.99,
        "category": "science"
      }
    ]
  }
}
Ausdruck Ergebnis
$.store.book[*].title Alle Buchtitel
$.store.book[0] Erstes Buchobjekt
$.store.book[?(@.price < 10)] Bücher günstiger als $10
$.store.book[?(@.category == "fiction")] Nur Belletristik-Bücher
$..price Alle Preiswerte überall im Dokument

Funktionen

  • Echtzeitauswertung — Ergebnisse werden aktualisiert, während Sie den Ausdruck eingeben oder das JSON bearbeiten
  • Zeigt die Anzahl der Treffer in einem dedizierten Feld an
  • Schaltfläche zum Kopieren im Ausdrucksfeld für schnelle Wiederverwendung
  • Schaltfläche zum Einfügen für schnelles Einfügen von JSON oder Ausdrücken aus der Zwischenablage
  • Fehlerberichterstattung für ungültiges JSON oder fehlerhafte Pfadausdrücke

Funktionsweise

JSONPath-Ausdrücke werden mit der jsonpath-plus-Bibliothek gegen das geparste JSON ausgewertet. Das $-Symbol bezieht sich auf das Wurzelelement. Untergeordnete Knoten werden mit . oder [] aufgerufen, Platzhalter mit *, rekursive Absteigung mit .. und Filter mit [?(...)]. Das Ergebnis ist immer ein Array von übereinstimmenden Werten, auch wenn nur eine Übereinstimmung gefunden wird.

Optionen erklärt

Syntax Bedeutung
$ Wurzelelement
.key oder ['key'] Untergeordnete Eigenschaft
[*] Alle Array-Elemente
[0] Erstes Array-Element (nullindexiert)
[-1] Letztes Array-Element
[0,2] Elemente bei Index 0 und 2
[0:2] Elemente von Index 0 bis 1 (Slice)
..key Rekursive Absteigung — key in beliebiger Tiefe finden
[?(@.price > 5)] Filter — Elemente, bei denen price größer als 5 ist
@ Aktueller Knoten (wird in Filterausdrücken verwendet)

Anwendungsfälle

  • API-Entwicklung — überprüfen Sie, dass ein JSONPath-Selektor, der in einem REST-Client, Test-Suite oder Datenmapping-Tool verwendet wird, die erwarteten Felder aus einer API-Antwort extrahiert
  • Datentransformation — identifizieren Sie, welche Werte aus verschachtelten JSON-Payloads extrahiert werden sollen, bevor Sie ein Transformationsskript schreiben
  • JSONPath lernen — experimentieren Sie interaktiv mit der Pfadsyntax, um zu verstehen, wie Operatoren wie .., [*] und [?()] bei echten Daten funktionieren

Tipps

  • Verwenden Sie $..*, um jeden einzelnen Wert im gesamten Dokument zu erhalten — nützlich zum Erkunden unbekannter JSON-Strukturen.
  • Filterausdrücke unterstützen Vergleiche (==, !=, <, >, <=, >=) und können auf verschachtelte Eigenschaften verweisen: [?(@.author.name == "Rees")].
  • Um eine Eigenschaft unabhängig von ihrer Tiefe zu finden, verwenden Sie die rekursive Absteigung ..: $..title findet alle title-Felder überall im Dokument.