Was ist ein JSONPath-Tester?
Ein JSONPath-Tester wertet einen JSONPath-Ausdruck gegen ein JSON-Dokument aus und gibt jeden Wert zurück, den der Ausdruck auswählt, zusammen mit dem genauen Pfad zu jedem Match. JSONPath ist eine Abfragesprache für JSON, die Art und Weise, wie XPath eine Abfragesprache für XML ist: Sie schreiben einen kurzen Pfad wie $.store.book [*].author und erhalten die Liste der übereinstimmenden Werte zurück, ohne Code zu schreiben Dieses Tool analysiert Ihren JSON, führt den Ausdruck aus und zeigt sowohl die Ergebnisse als auch den normalisierten Pfad jedes einzelnen an.
Der Sinn eines Testers ist Feedback Wenn ein JSONPath-Ausdruck nichts zurückgibt, oder mehr zurückgibt, als Sie erwartet haben, ist das Problem fast immer ein kleines Syntaxdetail: eine fehlende Platzhalterung, der falsche Klammerstil, oder ein Filter, der eine Zeichenfolge mit einer Zahl vergleicht, die Abfrage live gegen reale Daten ausführen, und sehen, welche Knoten es berührt, macht dieses Rätselraten zu einer Prüfung von zwei Sekunden Es ist der gleiche Grund, warum Entwickler einen Regex-Tester neben ihrem Editor offen halten.
Alles läuft in Ihrem Browser Der JSON wird mit dem integrierten JSON-Parser geparst und der Ausdruck wird von einem kleinen Interpreter ausgewertet, der in JavaScript geschrieben ist, also wird nichts hochgeladen, protokolliert oder gespeichert. Das ist wichtig, da JSONPath-Arbeit normalerweise gegen API-Antworten und Konfigurationsdateien erfolgt, die Token, IDs oder Kundendatensätze enthalten, und dieses Tool behält diese Nutzlast auf Ihrem eigenen Computer und arbeitet weiterhin offline, sobald die Seite geladen wurde.
JSONPath ist eine Konvention mit mehreren Implementierungen statt einer einzigen Spezifikation, und sie sind sich an den Rändern nicht einig Filter-Syntax ist der am wenigsten portable Teil, so dass ein Ausdruck, der in einer Bibliothek arbeitet, möglicherweise in einer anderen angepasst werden muss Rekursiver Abstieg ist die teure Operation: er läuft jeden Knoten im Dokument, so dass bei einer großen Datei eine Abfrage, die mit zwei Punkten beginnt, merklich langsamer ist als ein expliziter Pfad.
Um es als JSONPath-Online-Evaluator auszuprobieren, klicken Sie auf Beispiel laden, ersetzen Sie den Ausdruck durch $.store.book [? (@.preis < 10)].title und klicken Sie auf Auswerten. Der Wertemodus gibt ["Sayings of the Century", "Moby Dick"] mit dem Bereich 2 Ergebnisse markiert... Ausgabe auf Pfade umschalten und erneut auf Auswerten klicken, und dieselbe Abfrage gibt $.store.book [0].title und $.store.book [2].title zurück, der Ihnen sagt, dass der Filter die Bücher bei Index 1 und 3 übersprungen hat. Ändern Sie den Ausdruck auf $preis und Sie erhalten fünf Zahlen, weil der rekursive Abstieg.
Wie benutzt man den JSONPath-Tester?
Füge deinen JSON ein
Fügen Sie ein Objekt oder Array in das JSON-Feld ein oder klicken Sie auf Beispiel für das Buchhandlungsdokument laden. Die Eingabe muss gültig sein. JSON; Es wird ein Analysefehler mit der eigenen Nachricht Ihres Browsers angezeigt, in der normalerweise die Position benannt wird, damit Sie sie beheben können.
Schreiben Sie einen JSONPath-Ausdruck
Geben Sie einen Pfad wie $.store.book [*].title oder $..Preis ein. Beginnen Sie bei $ für die Wurzel, verwenden Sie Punkte oder Klammern für Kinder und fügen Sie Filter wie [? (@.preis < 10)] hinzu, um nach Wert auszuwählen.
Lies die Streichhölzer
Klicken Sie auf Auswerten, um den Ausdruck auszuführen; der Bereich Übereinstimmungen listet jeden übereinstimmenden Wert auf und zeigt die Ergebnisanzahl an, Schalten Sie die Ausgabe auf Pfade oder Einträge und klicken Sie erneut auf Auswerten, um zu sehen, woher das jeweilige Ergebnis stammt.
Kopieren Sie das Ergebnis
Kopieren Sie die übereinstimmenden Werte, die Liste der Pfade oder die vollständigen Pfad- und Werteinträge als JSON, um sie in Ihren Code, Ihre Tests oder Ihre Dokumentation einzufügen.
Hauptmerkmale
Vollpfad-Syntax
Wurzel, Kind, rekursiver Abstieg (..), Platzhalter (*), Array-Index einschließlich Negativindex, Vereinigungen und Slices im Python-Stil werden alle unterstützt, sodass die meisten veröffentlichten JSONPath-Beispiele unverändert ausgeführt werden.
Filterausdrücke
Wählen Sie Knoten nach Wert mit Filtern wie [? (@.price < 10 & @.category == "fiktion")]. Vergleichsoperatoren, Existenzprüfungen und & & / || Kombinationen werden pro Element ausgewertet.
Werte, Pfade oder Einträge
Sehen Sie die übereinstimmenden Werte, den normalisierten Pfad jedes Spiels oder beides zusammen als Einträge. Die Pfadausgabe ist praktisch zum Erstellen des Ausdrucks, den Sie benötigen.
Fehlermeldungen löschen
Ungültige JSON- und fehlerhafte Ausdrücke werden separat mit einer bestimmten Nachricht gemeldet, sodass Sie wissen, ob Sie die Daten oder die Abfrage beheben sollen, anstatt auf ein leeres Ergebnis zu starren.
Frequently Asked Questions
Related Tools
JSON Schema Generator
Generate a JSON Schema from any JSON sample. Infers types, merges arrays of objects into one item schema, derives required fields, and detects date-time, email, uri, and uuid formats. Draft-07 and 2020-12 output. 100% client-side.
JSON to TypeScript
Generate TypeScript interfaces from any JSON sample. Infers nested types, merges arrays of objects into a single interface, marks nullable and missing keys optional, and emits clean exportable code. 100% client-side.
JSON to XML
Convert JSON to well-formed XML instantly. Map object keys to elements, @-prefixed keys to attributes and #text to content, expand arrays into repeated tags, and export minified or pretty-printed XML. 100% client-side.
XML Formatter
Format, beautify, minify, and validate XML online - preserves comments, CDATA, and attribute order, with clear error reporting
Comments
0 comments
No comments yet. Be the first to share your thoughts!