JSON-Abfrage

Werte aus JSON mit JSONPath-Ausdrücken oder RFC 6901 JSON-Pointer extrahieren

JSON

Abfrage

JSON-Abfrage

Werte aus JSON mit JSONPath-Ausdrücken oder RFC 6901 JSON-Pointer extrahieren

Funktionen

  • Zwei Abfragemodi nebeneinander: JSONPath (vom geteilten QueryService betrieben, mit Wildcards und Klammerzugriff) und RFC 6901 JSON-Pointer (schrägstrich-getrennt, mit ~0/~1-Escape) — wählen Sie die Syntax, die zu Ihren bestehenden Tools passt
  • Wildcard `*` an einer Pfadposition expandiert auf alle Objektschlüssel oder Array-Elemente dieser Ebene — `$.store.books[*].title` liefert jeden Buchtitel ohne Schleife
  • Jeder Treffer wird mit konkretem Pfad UND Wert gezeigt: Ergebnisse sind nicht eine einzelne Antwort, sondern eine Pfadliste — eine Wildcard-Expansion erzeugt N Zeilen, die Sie einzeln oder gruppiert kopieren können
  • JSON-Pointer-Modus validiert Segment-Syntax: beginnt mit `/`, Integer-Segmente indizieren Arrays, benannte Segmente indizieren Objekte, `~1` dekodiert zu `/` und `~0` zu `~` — gleiche Semantik wie JSON Schema instancePath und JSON Patch
  • Treffer-bezogene Kopier-Schaltfläche schreibt den Wert in die Zwischenablage (Strings roh, Strukturen als pretty-printed JSON), und Alle kopieren gibt die gesamte `Pfad: Wert`-Liste als Klartext aus
  • Parsefehler und Abfragefehler werden separat mit der vollständigen Engine-Meldung herausgegeben — Sie wissen sofort, ob Ihr JSON oder Ihr Ausdruck schuld ist
  • Beispiel laden füllt ein kleines Buchhandlungs-Dokument mit einer funktionierenden Abfrage für den aktiven Modus — nützliche Erstreferenz für die Syntax
  • Rein clientseitig: JSON, Ausdrücke und Ergebnisse verlassen den Browser nie; funktioniert offline, sobald die Seite gecacht ist

Anleitung

  1. Fügen Sie das JSON-Dokument, das Sie abfragen möchten, in das linke Textfeld ein.
  2. Wählen Sie einen Abfragemodus: JSONPath (gut für Selektoren mit Wildcards) oder JSON-Pointer (gut, um eine einzelne Knoten unzweideutig zu benennen).
  3. Geben Sie den Ausdruck in das Abfragefeld ein — Beispiele werden im Platzhalter für jeden Modus angezeigt.
  4. Drücken Sie Abfrage ausführen oder Enter im Abfragefeld. Treffer erscheinen mit konkreten Pfaden und Werten; ein Zähler zeigt, wie viele gefunden wurden.
  5. Kopieren Sie einzelne Werte mit dem Symbol neben jedem Treffer, oder nutzen Sie Alle kopieren für die gesamte `Pfad: Wert`-Liste.
  6. Nutzen Sie Beispiel laden, um beide Eingaben mit einem funktionierenden Beispiel zu füllen, falls Sie die Syntax noch nicht kennen.

Tipps & Best Practices

  • Wenn Sie unsicher sind, ob Ihr JSON einen Schlüssel hat, nutzen Sie zuerst eine Wildcard, um aufzulisten, was tatsächlich da ist, und engen dann ein.
  • JSON-Pointer-Pfade sind als Strings sortierbar — nützlich, wenn Sie Pfad-Sets zwischen zwei Strukturen diffen wollen.
  • Wenn eine Abfrage einen Treffer liefert, aber Sie mehrere erwarteten, prüfen Sie Tippfehler (`book` vs `books`) — JSONPath hier gibt exakte, keine Fuzzy-Treffer zurück.
  • Für tief verschachtelte Daten ist JSON-Pointer kürzer als JSONPath, weil keine `$` und `.` Separatoren mitgeführt werden — nützlich in Chat oder Commit-Nachrichten.
  • Kombinieren Sie mit JSON-Baum: erst visuell navigieren, dann einen bekannten guten Pointer in dieses Tool kopieren zur Wiederverwendung.

FAQ

Welche JSONPath-Syntax wird unterstützt?

Das minimale aber nützliche Subset: `$` Wurzel, `.key` Member-Zugriff, `['key']` zitierter Zugriff (für Schlüssel mit Punkten oder Sonderzeichen), `[N]` Array-Index und `*` Wildcard auf jeder Stufe. Filterausdrücke (`[?(@.price < 30)]`), Descendant-Operator (`..`) und Slicing (`[1:3]`) werden hier nicht unterstützt — dafür nutzen Sie das JSONPath-Tab des JSON Formatters mit einer reicheren Engine.

Was ist der Unterschied zwischen JSONPath und JSON-Pointer?

JSONPath ist eine Abfragesprache (XPath-für-JSON) — sie kann mehrere Knoten über Wildcards, Descendants und Prädikate auswählen. JSON-Pointer (RFC 6901) ist eine Pfadnotation — sie benennt GENAU einen Knoten, und entweder existiert er oder nicht. Nutzen Sie JSONPath, wenn Sie ein Ergebnis-SET wollen; JSON-Pointer, wenn Sie einen eindeutigen Ort wollen (z. B. für JSON Patch oder um einen fehlgeschlagenen instancePath aus einem Schema-Validator zu kopieren).

Warum brauche ich beide Modi?

Verschiedene Tools und Standards verwenden verschiedene Notationen. JSON Schema instancePath-Fehler sind JSON-Pointer. fast-json-patch verwendet JSON-Pointer. JSONPath ist, was die meisten JSON-Abfrage-CLI-Tools und viele Bibliotheken erwarten. Beide Modi hier bedeuten, dass Sie einen Pfad zwischen Tools kopieren können, ohne ihn umzuschreiben.

Wie werden Schlüssel mit Sonderzeichen behandelt?

JSONPath: in Klammern zitieren — `$['weird.key']` greift auf den Schlüssel namens `weird.key` zu. JSON-Pointer: nach RFC 6901 escapen — `/` in einem Schlüssel wird `~1`, `~` wird `~0`. Der Platzhalter zeigt die Standardform für jeden Modus.

Was passiert, wenn der Pfad nichts trifft?

Sie erhalten ein 0-Treffer-Ergebnis und einen "Abfrage hat keine Treffer geliefert"-Hinweis statt eines Fehlers. Das ist die normale JSONPath / JSON-Pointer-Konvention: fehlende Pfade sind Abwesenheit, nicht Versagen. Unterscheiden Sie Abwesenheit von fehlerhaftem Input, indem Sie schauen, ob die Fehlerzeile erschien.

Können Wildcards in verschachtelte Arrays absteigen?

Ja, auf jeder Ebene. `$.users[*].roles[*]` wildcards zuerst über alle Benutzer, dann über die Rollen jedes Benutzers — jede Rollen-Zeichenkette wird produziert. Die Ausgabetabelle zeigt den aufgelösten konkreten Pfad jedes Treffers (z. B. `$.users[0].roles[2]`), nützlich, wenn Sie wissen wollen, woher ein Treffer kam.

Wird etwas an einen Server gesendet?

Nein. JSON.parse läuft in Ihrem Browser, JSONPath / JSON-Pointer-Auswertung läuft in Ihrem Browser, und die Treffer werden ohne Netzwerk-Aufruf in die Seite gerendert. Der Netzwerk-Tab in DevTools zeigt nichts, wenn Sie Abfrage ausführen drücken.

Wie unterscheidet sich das vom Query-Tab des JSON Formatters?

JSON Formatter ist ein Multi-Tool: Format, Validierung, Schema-Check, JSONPath, Diff. Diese eigenständige JSON-Abfrage ist die minimale Oberfläche: eine URL, zwei Modi, Ergebnisse-als-Liste mit Pro-Treffer-Kopie, keine zusätzliche Fläche. Nutzen Sie den Formatter, wenn Sie eine einzige Sicht wollen, die mehrere JSON-Workflows kombiniert; dies, wenn Sie nur Werte extrahieren wollen.