ForHosting KIT · Daten & Dateien

JSON mit Ausdrücken im JSONPath-Stil abfragen

Lesen Sie Werte mit einem kurzen Pfad aus einem Datendokument: $.store.books[*].title liefert North und South, einen Titel pro Buch, in der Reihenfolge des Dokuments. Ein Pfad ohne Treffer ergibt eine leere Liste, keinen Fehler. Kostenlos in Ihrem Browser.

  • Kostenlos
  • Läuft in Ihrem Browser
  • Ohne Anmeldung
  • Ihre Daten bleiben auf Ihrem Gerät
Nutzen Sie es über WebAPIE-MailTelegramApp bald
Wenn Sie eingeben
Pfad
$.store.books[*].title
Erhalten Sie
Übereinstimmungen
North, South

Die unterstützte Syntax umfasst direkte Eigenschaften, in Anführungszeichen gesetzte Eigenschaften, Array-Indizes und Platzhalter. Filter, rekursiver Abstieg, Bereiche, Vereinigungen und ausführbare Ausdrücke werden bewusst abgelehnt. Dieser enge Vertrag sorgt bei Fehlersuche, Tests, Datenprüfung und leichter Automatisierung für vorhersehbare Ergebnisse.

Erstellen Sie einen Pfad vom Anfang des Dokuments

Jeder Ausdruck beginnt mit <code>$</code>; dieses Zeichen steht für das vollständig eingelesene Dokument. Fügen Sie einen Punkt und einen einfachen Eigenschaftsnamen wie <code>$.customer.name</code> hinzu, um durch Objekte zu navigieren. Bei der Punktnotation muss ein Name mit einem Buchstaben oder Unterstrich beginnen und darf danach Buchstaben, Ziffern oder Unterstriche enthalten.

Enthält ein Schlüssel ein Leerzeichen, einen Bindestrich, einen Punkt oder ein anderes nicht passendes Zeichen, verwenden Sie einen in Anführungszeichen gesetzten Klammernschritt, etwa <code>$['display-name']</code> oder <code>$["shipping address"]</code>. Sowohl einfache als auch doppelte Anführungszeichen sind zulässig; das jeweilige Anführungszeichen und ein Rückstrich lassen sich maskieren. Pfade werden von links nach rechts ausgewertet.

Eine fehlende Eigenschaft liefert für den betreffenden Zweig keinen Wert. Die Antwort enthält stets ein <code>matches</code>-Array, auch wenn der Pfad nur einen Skalar bezeichnet. Dadurch können Sie einzelne Treffer, Platzhalterergebnisse und leere Ergebnisse mit derselben Ausgabeform verarbeiten.

Wählen Sie Array-Einträge und erweitern Sie Platzhalter

Mit einer nicht negativen Ganzzahl in Klammern wählen Sie eine Array-Position aus, beispielsweise <code>$.orders[0].id</code>. Indizes beginnen bei null. Das erste Element hat daher den Index null, während ein Index jenseits der Array-Länge keinen Treffer ergibt.

Mit <code>[*]</code> erweitern Sie alle Elemente; anschließend können Sie den Pfad fortsetzen und ein Feld jedes Elements lesen. So liefert <code>$.store.books[*].title</code> den Titel jedes Buchobjekts, das diese Eigenschaft besitzt. Auch die Punktform <code>.*</code> wird unterstützt.

Platzhalter lassen sich mit nachfolgenden Eigenschafts- oder Indexschritten kombinieren. Nicht passende Zweige werden verworfen, ohne andere Treffer zu beeinflussen. Die endgültige Reihenfolge folgt somit dem Quelldokument und dem Ablauf der Navigation.

Erkennen Sie die bewusst nicht unterstützte Syntax

Diese Fähigkeit implementiert eine kleine Sprache im JSONPath-Stil und nicht jeden verfügbaren Dialekt. Rekursiver Abstieg wie <code>$..name</code>, Filter wie <code>$[?( @.price &lt; 10)]</code>, Bereiche, Vereinigungen, negative Indizes, Skriptausdrücke und Funktionen werden abgelehnt.

Das ist beabsichtigt, weil sich diese Merkmale zwischen Bibliotheken unterscheiden und teilweise Auswertungen erlauben, die nicht zu einem deterministischen Parser passen. Findet ein syntaktisch gültiger Pfad hingegen nichts, ist das kein Fehler: Das Ergebnis ist ein leeres <code>matches</code>-Array. Ihre Automatisierung kann dadurch fehlerhafte Anweisungen von gültigen Abfragen nach fehlenden optionalen Daten unterscheiden.

Prüfen Sie Pfade während der Entwicklung, bleiben Sie beim dokumentierten Teilumfang und legen Sie fest, ob eine leere Treffermenge in Ihrem Ablauf zulässig ist.

Welche JSONPath-Funktionen werden unterstützt?

Der Teilumfang umfasst das Wurzelsymbol, Punkteigenschaften, zitierte Klammereigenschaften, nicht negative Array-Indizes und Platzhalter.

Was geschieht, wenn ein Pfad keine Treffer hat?

Die Anfrage gelingt und gibt ein leeres matches-Array zurück. Fehlende Daten sind nicht dasselbe wie ungültige Pfadsyntax.

Kann ich Filter oder rekursiven Abstieg verwenden?

Nein. Filter, rekursiver Abstieg, Bereiche, Vereinigungen, Skripte, Funktionen und negative Indizes werden abgelehnt.

Wie lese ich einen Schlüssel mit Leerzeichen oder Bindestrich?

Setzen Sie den Namen in Anführungszeichen in eckige Klammern, etwa $['display-name'] oder $["shipping address"]. Der einfache Punkt passt nur zu Namen, die mit einem Buchstaben oder Unterstrich beginnen und aus Buchstaben, Ziffern oder Unterstrichen bestehen.

Beginnen Listenpositionen bei 0 oder bei 1?

Bei 0: $.orders[0].id liest die erste Bestellung. Eine Position hinter dem Listenende ergibt keinen Treffer, aber auch keinen Fehler, und negative Positionen werden nicht angenommen.

Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.

POSThttps://api.kit.forhosting.com/dev2/json-path-query

Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.

curl -X POST https://api.kit.forhosting.com/dev2/json-path-query \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"json":"{\"store\":{\"books\":[{\"title\":\"North\",\"price\":12},{\"title\":\"South\",\"price\":18}]}}","path":"$.store.books[*].title"}'
{
  "json": "{\"store\":{\"books\":[{\"title\":\"North\",\"price\":12},{\"title\":\"South\",\"price\":18}]}}",
  "path": "$.store.books[*].title"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev2.json_path_query",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.

pro Anfrage$0.002

Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.

HTTPCodeBedeutung
401unauthorizedDer API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer).
402insufficient_balanceIhr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht.
404unknown_typeUnbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog.
429rate_limitedZu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt.

Mit diesem Abfragewerkzeug im JSONPath-Stil extrahieren Sie Werte aus einem JSON-Dokument, ohne ein Skript schreiben, Abhängigkeiten installieren oder eine Befehlszeile einrichten zu müssen. Fügen Sie gültiges JSON ein, geben Sie einen mit dem Wurzelsymbol beginnenden Pfad an und Sie erhalten eine geordnete Trefferliste.

Erstellen Sie einen Pfad von der JSON-Wurzel aus

Der Wurzelausdruck allein ist gültig und gibt den gesamten JSON-Wert als einzigen Treffer zurück.

Wählen Sie Array-Einträge und erweitern Sie Platzhalter

Bei einem Objekt besucht ein Platzhalter die Werte in der üblichen JSON-Eigenschaftsreihenfolge, bei einem Array vom ersten bis zum letzten Element. Werte behalten ihren nativen JSON-Typ: Zeichenketten, Zahlen, Objekte, Arrays, boolesche Werte und null werden ohne Umwandlung zurückgegeben.

Erkennen Sie die bewusst nicht unterstützte Syntax

Ein nicht unterstützter Ausdruck erzeugt einen Fehler <code>invalid_input</code> mit einer Nachricht zum Syntaxproblem; er wird niemals als teilweise gültiger Pfad behandelt. Ungültiges JSON wird bereits vor der Navigation separat abgelehnt. Der API-Preis beginnt bei $0.002 pro Anfrage; im Browser steht dieselbe deterministische Logik bereit.

Eine API-Antwort untersuchen

Extrahieren Sie beim Debuggen einen tief verschachtelten Status, Bezeichner oder eine Liste von Werten aus der Antwort.

Stabile Testprüfungen erstellen

Wählen Sie nur die für einen Regressionstest benötigten Felder aus, statt ein vollständiges veränderliches Dokument zu vergleichen.

Leichte Automatisierung vorbereiten

Entnehmen Sie Werte aus Konfigurations-, Webhook- oder Export-JSON, bevor Sie sie an den nächsten deterministischen Schritt übergeben.

Werden gefundene Werte in Text umgewandelt?

Nein. Sie behalten ihren JSON-Typ, darunter Zahlen, boolesche Werte, null, Objekte und Arrays.

Was kostet eine API-Anfrage?

Der API-Preis beginnt bei $0.002 pro Anfrage. Diese Fähigkeit kann außerdem kostenlos im Browser ausgeführt werden.

Vollständige KIT-Dokumentation lesen →