Eingefügtes JSON mit Selektoren und einfachen Vergleichsfiltern abfragen. Zu jedem Treffer erscheinen der Wert und sein Pfad im Dokument. Nicht unterstützte Syntax wird abgelehnt; JavaScript-Ausdrücke werden nicht ausgeführt.
Läuft lokal in deinem BrowserUnterstützt Namen, Klammernotation, Indizes, Platzhalter, Vereinigungen, Ausschnitte, Nachfahren-Selektoren und einfache Vergleichsfilter.
Die grundlegende Abfrageanalyse erfolgt lokal. Nicht unterstützte Ausdrucksformen liefern einen klaren Fehler, statt auf eval().
Fügen Sie ein JSON-Dokument ein, schreiben Sie einen JSONPath-Ausdruck und lesen Sie jeden Treffer als normalisierten Pfad mit seinem Wert. Die Abfrage läuft auf dem Text in diesem Tab: Es wird nichts hochgeladen und keine Anfrage verlässt die Seite.
Der Parser gehört zu diesem Werkzeug und greift nie auf eval() zurück. Syntax, die er nicht umsetzt, endet mit einer benannten Fehlermeldung: kombinierte Filter mit &&, || oder ! werden abgelehnt, ebenso ein Vergleich eines Filters mit der Dokumentwurzel.
Namen, Namen in Klammern und Indizes: $.store.book, $["store"]["book"], $['store']['bicycle'], [0], [-1] für das letzte Element und Vereinigungen wie [0,1] oder ['a','b']. Ein Name ohne Klammern beginnt mit Buchstabe, Unterstrich oder $ und fährt mit Buchstaben, Ziffern, Unterstrich, $ oder Bindestrich fort; ein Schlüssel mit Punkt oder Leerzeichen braucht die Klammerform.
Platzhalter, Ausschnitte und Nachfahren: $.store.*, $..price, [0:2], [::2], [::-1]. Ausschnitte folgen denselben Grenzen wie in Python: eine negative Grenze zählt vom Ende, ein negativer Schritt läuft rückwärts.
Ein Filter prüft genau einen Vergleich und akzeptiert ==, !=, <, <=, > und >= gegen eine Zahl, eine Zeichenkette in Anführungszeichen, true, false oder null: [?(@.price < 10)] oder [?(@.title == "Moby Dick")]. Ein Filter ohne Operator behält die Knoten, in denen die Eigenschaft vorhanden und wahr ist: [?(@.isbn)].
Was der Parser nicht auswerten kann, wird abgelehnt statt geraten: [?(@.price > 1 && @.price < 10)] meldet, dass kombinierte Filter nicht unterstützt werden, [?(@.price > $.expensive)], dass ein Filter nicht mit der Wurzel verglichen werden kann, und ein regulärer Ausdruck wie =~ /a/, dass der Filterausdruck nicht unterstützt wird.
Jeder Treffer nennt seinen Pfad in einer einheitlichen Form, $["store"]["book"][0]["author"], unabhängig von der Schreibweise der Abfrage, und derselbe Knoten erscheint nie zweimal. Ergebnis-JSON kopieren liefert die Treffer als ein JSON-Array, bereit für ein Fixture oder einen Diff.
Die Karte Treffer zeigt die ersten 200 Ergebnisse und nennt die Anzahl der übrigen; die Schaltfläche zum Kopieren liefert weiterhin das vollständige Array. Ein Dokument mit 50.000 Knoten beantwortet eine Platzhalterabfrage in unter einer Sekunde, und tief verschachtelte Dokumente werden ohne Stapelüberlauf durchlaufen.