Was ist JSONPath und warum brauche ich einen Tester?
Du hast ein JSON-Dokument. Kann eine API-Response sein, eine Config, eine Log-Zeile, irgendwas. Drin steckt ein Datenstueck, das du rausholen willst: die E-Mail des dritten Users, jeden Preis unter 10 Euro, alle Bild-URLs 4 Ebenen tief verschachtelt. Eine JavaScript-Schleife geht, ist aber langsam und laut. JSONPath ist die Abkuerzung: eine kleine Query-Sprache fuer JSON, nach dem Vorbild von XPath fuer XML. Eine Zeile, du hast die Werte.
Der Tester laesst deinen Ausdruck live waehrend du tippst laufen. Paste JSON links, tipp einen JSONPath wie `$.store.book[*].title` rechts, siehst die matchenden Werte rechts. Nichts verlaesst den Browser, das JSON bleibt auf deiner Maschine, wichtig beim Debuggen einer Production-Response mit echten Userdaten.
Das Tool bringt Goessners klassisches Buchladen-Beispiel mit (das JSON, das jedes JSONPath-Tutorial nutzt), damit Cheat-Sheet und Beispiel-Chips sofort funktionieren. Klick ein Beispiel an, tweake den Ausdruck, sieh was sich aendert. Du lernst die Syntax schneller durch Spielen als durch Doku lesen.
So nutzt du den Tester
- JSON pasten in die linke Textarea. Format klick fuer Pretty-Print (4-Space-Indent, sortiert nichts, einfach lesbar). Bei kaputtem JSON (fehlendes Komma, offene Klammer) gibts ein rotes Invalid JSON-Badge: fix es, das Badge geht weg.
- JSONPath-Ausdruck tippen im Input rechts. Ergebnis aktualisiert bei jedem Tastendruck, kein Run-Button. Starte mit `$` (Root-Dokument) und grab dich mit `.field` oder `[index]` runter. Die Beispiel-Chips drunter sind klickbare Startpunkte.
- Das Result-Panel zeigt die gematchten Werte als JSON. Match-Count oben rechts, leerer Match gibt "no matches" statt eines leeren Arrays, du weisst, dass der Ausdruck fehlerfrei lief.
- Toggle Show paths, um den Output von Werten zu JSON-Pfaden umzustellen (wie `$.store.book[0].title`). Nuetzlich, wenn du wissen willst, wo etwas ist statt was es ist.
- Kopieren legt das Ergebnis in die Zwischenablage. Beispiel laden setzt jederzeit aufs Buchladen-Dokument zurueck. Clear wischt beide Panels.
- Nutz das Cheat-Sheet unten: jede Zeile klickbar, laedt das Beispiel ins Query-Feld (und setzt JSON auf das Sample), damit du genau siehst, was jeder Operator macht.
Wann das nuetzlich ist
Sechs konkrete Situationen, in denen JSONPath eine Custom-Schleife schlaegt:
- API-Responses debuggen. Du hittest einen Endpoint, die Response sind 80 KB verschachteltes JSON, du brauchst nur die User-IDs der zweiten Seite. Tipp `$.data.users[*].id` und du hast sie. Kein Skript noetig, kein IDE oeffnen, kein Copy-Paste.
- Felder aus einer Config-Datei extrahieren. Du hast ein 2000-zeiliges Kubernetes-Manifest oder Helm values.yaml (zu JSON konvertiert) und willst jedes Container-Image im Cluster. `$..spec.containers[*].image` und fertig. Der Recursive Descent (`..`) ist es egal, wie tief die Container verschachtelt sind.
- Nach Bedingung filtern. Du hast einen Produktkatalog mit 400 Items und brauchst die unter 10 Euro. `$.products[?(@.price < 10)]` gibt sie alle, kein SQL, kein Excel, einfach paste und tipp. Mit `&&` mehrere Bedingungen: `[?(@.price < 10 && @.inStock)]`.
- Syntax lernen vor dem Code-Einsatz. Viele Libraries nehmen JSONPath: jq-Alternativen, Postman-Test-Skripte, Grafana-Panels, Azure Logic Apps, AWS Step Functions. Hier testen, dann mit Vertrauen ins echte Tool.
- Automatisierungsregeln bauen. Du verdrahtetst Zapier, n8n, Make, Pipedream, die meisten haben einen "JSONPath"-Filter-Step. Filter hier mit echtem Webhook-Payload skizzieren, dann den funktionierenden Ausdruck in die Regel.
- Schnelle Datenexploration. Du hast Daten exportiert (Notion, Airtable, Stripe, GitHub API) als JSON und willst eine Frage schnell beantworten. "Wie viele Rechnungen ueber 500 Euro?" `$..invoices[?(@.amount > 500)]`, Matches zaehlen, fertig. Schneller als Spreadsheet-Tricks.