JSON-Pfad-Extraktor

Fügen Sie JSON ein und geben Sie eine Pfad-Ausdruck wie $.store.book[0].title ein, um Werte zu extrahieren.

Ergebnis

Geben Sie JSON und einen Pfad ein und klicken Sie dann auf Extrahieren.

So funktioniert es

  1. Fügen Sie Ihr JSON ein: Geben Sie ein beliebiges JSON-Objekt oder -Array in das Eingabefeld ein.
  2. JSONPath-Ausdruck eingeben: Tippen Sie einen Pfad wie $.store.book[*].author oder $..name, um die benötigten Daten zu wählen.
  3. Extrahierte Ergebnisse ansehen: Übereinstimmende Werte erscheinen sofort im Ausgabe-Bereich. Kopieren oder exportieren Sie das Ergebnis.

Warum den JSONPath-Extraktor nutzen?

Bei der Arbeit mit komplexen API-Antworten oder tief verschachteltem JSON ist das manuelle Extrahieren bestimmter Werte langsam und fehleranfällig. JSONPath ist die Abfragesprache für JSON, vergleichbar mit XPath für XML. Damit zielen Sie mit einem prägnanten Pfad-Ausdruck genau auf die Daten, die Sie brauchen, sei es ein einzelner verschachtelter Wert, alle Elemente in einem Array oder gefilterte Datensätze, die einer Bedingung entsprechen. Dieses Tool macht JSONPath-Erkundung interaktiv, ohne Code zu schreiben.

Funktionen

Häufige Fragen

Was ist JSONPath?

JSONPath ist eine Abfragesprache für JSON-Dokumente, analog zu XPath für XML. Ein Pfad wie $.users[*].name wählt das Feld name aus jedem Objekt im users-Array. Sie wird häufig für API-Tests, Datentransformation und JSON-Verarbeitung eingesetzt.

Wie filtere ich Array-Elemente nach einer Bedingung?

Verwenden Sie einen Filterausdruck: $.items[?(@.price < 50)] gibt alle Elemente zurück, deren Preis unter 50 liegt. Das @-Symbol verweist auf das aktuell ausgewertete Element.

Wird rekursive Suche unterstützt?

Ja. Der Operator .. sucht rekursiv durch alle Ebenen. Beispielsweise findet $..name alle name-Schlüssel an beliebiger Stelle in der JSON-Struktur, unabhängig von der Verschachtelungstiefe.

Von einem Blogbeitrag zu RFC 9535: der 17-jährige Weg zu einem JSONPath-Standard

Stefan Gössner schlug JSONPath in einem einzigen Blogbeitrag im Februar 2007 vor und adaptierte die XPath-Idee für JSON. Er veröffentlichte eine JavaScript-Referenzimplementierung, skizzierte die Syntax (die Wurzel $, Punkt- und Klammer-Kind-Operatoren, .. für rekursiven Abstieg, * für Wildcard, [Start:Ende:Schritt] für Array-Slicing, [?(...)] für Filterausdrücke) und das weitere Ökosystem folgte. Implementierungen vermehrten sich: jsonpath für JavaScript, JsonPath für Java, jq (Stephen Dolan, 2012), das JSONPath-verwandt aber sein eigenes Ding ist, jsonpath-ng für Python, JMESPath (AWS, 2014) als strengerer Rivale. Das Problem: jede Implementierung driftete ab. Filtersyntax, Rekursionssemantik, Regex-Matching, Wurzel-Bezeichner, alle subtil unterschiedlich zwischen Bibliotheken. Eine Vergleichsstudie von 2023 von Carsten Bormann et al. testete 41 verschiedene JSONPath-Implementierungen gegen dieselbe Eingabe und erhielt 41 verschiedene Ergebnismengen für denselben Ausdruck. Die IETF JSONPath Working Group trat 2020 zusammen, um dies zu beheben. RFC 9535 «JSONPath: Query Expressions for JSON» wurde im Februar 2024 veröffentlicht und wurde der erste formale Standard für JSONPath, 17 Jahre nach Gössners Originalbeitrag. RFC 9535 kodifiziert die Syntax, definiert ein normalisiertes Ausgabeformat, erfordert Unicode-Normalisierung für String-Vergleiche und fügt eine Konformitätstest-Suite hinzu.

JSONPath-Syntax-Spickzettel

Die sieben Operatoren, die die meisten Real-World-Abfragen abdecken:

Wo du tatsächlich zu JSONPath greifst

Fehler, die zubeißen

JSONPath vs jq vs JMESPath vs JSON Pointer

Weitere häufig gestellte Fragen

Ist JSONPath dasselbe wie XPath?

Inspiriert davon, nicht identisch. XPath wurde 1999 vom W3C für XML finalisiert, JSONPath wurde 2007 von Gössner skizziert, um dieselbe Idee zu JSON zu bringen. Die größten Unterschiede: JSONPath verwendet . und [] statt /, JSONPath hat kein Konzept von XML-Namespaces oder -Attributen, JSONPath wurde viel später standardisiert (2024 vs 1999), also war es jahrelang eine De-facto-Syntax mit vielen inkompatiblen Implementierungen.

Warum liefert derselbe JSONPath unterschiedliche Ergebnisse in verschiedenen Tools?

Weil JSONPath bis RFC 9535 (Februar 2024) nicht standardisiert war. Davor traf jede Implementierung ihre eigenen Entscheidungen über Filtersyntax, Regex-Unterstützung, Wurzel-Bezeichner, Escape-Regeln und Edge Cases (leere Arrays, fehlende Schlüssel, Typ-Koerzion in Filtern). Eine Studie der IETF Working Group von 2023 testete 41 Implementierungen mit derselben Eingabe und erhielt 41 verschiedene Ergebnismengen. RFC 9535 behebt dies für neue und aktualisierte Bibliotheken; ältere Bibliotheken werden divergieren, bis sie migrieren. Überprüfe immer, ob deine Bibliothek «RFC 9535-Konformität» beansprucht.

Kann ich JSON mit JSONPath ändern oder nur lesen?

RFC 9535 definiert JSONPath strikt als Abfrage-Sprache: sie gibt Werte aus einem Dokument zurück, sie mutiert nicht. Um JSON zu ändern, verwende JSON Patch (RFC 6902), das JSON-Pointer-Pfade und add/remove/replace/copy/move/test-Operationen verwendet. Einige Bibliotheken kombinieren beides (z.B. jsonpath-plus in JavaScript hat eine apply()-Mutations-Erweiterung), aber das ist kein Standard-JSONPath.

Unterstützt JSONPath reguläre Ausdrücke in Filtern?

RFC 9535 fügte zwei Regex-Funktionen hinzu: match(node, regex) entspricht der gesamten Zeichenfolge, search(node, regex) entspricht einem beliebigen Teilstring. Beispiel: $.book[?(match(@.isbn, "^978-"))]. Der Regex-Geschmack ist I-Regexp (RFC 9485, ein Profil von XML-Schema-Regex), nicht PCRE oder JavaScript-Regex. Ältere Bibliotheken verwendeten den Regex-Geschmack ihrer Host-Sprache, was Regex-Abfragen besonders nicht-portabel macht.

Wird mein JSON irgendwohin gesendet, wenn ich dieses Tool verwende?

Nein. Die Pfadauswertung läuft vollständig in der JavaScript-Engine deines Browsers. Öffne den Netzwerk-Tab in DevTools und führe eine Abfrage aus, du wirst null ausgehende Anfragen während der Auswertung sehen. Sicher für API-Antworten mit Geheimnissen, Datenbank-Dumps mit PII oder Konfigurationsdateien mit Anmeldedaten.

Verwandte Tools

JSON-Baum-Betrachter Kostenloser Online-JSON-Formatierer & -Validator JSON zu CSV Konverter JSON-Vergleich