JSONPath-Tester

Führt eine JSONPath-Abfrage im Browser aus. Zum Formatieren des Dokuments dient der JSON-Formatierer

Was abgefragt werden kann

JSONPath holt Werte aus einem JSON-Dokument. Diese Seite führt eine praktische Teilmenge aus und gibt jeden Treffer als JSON zurück. Zum Aufräumen des Dokuments dient der JSON-Formatierer.

So wird sie benutzt

  1. Fügen Sie JSON ins obere Feld und einen Pfad in JSONPath ein. Der Pfad beginnt als $.
  2. Umwandeln führt die Abfrage aus. Die Zeile neben dem Pfad sagt, wie viele Treffer zurückkamen.
  3. Beispiel anzeigen lädt {"store":{"book":[{"author":"Nigel","price":8},{"author":"Evelyn","price":12}],"bicycle":{"price":19}}} und den Pfad $.store.book[*].author. Das Ergebnis ist ein JSON-Array aus Nigel und Evelyn, und die Anzahl ist 2.
  4. Die Kacheln füllen dasselbe Dokument, wenn das Feld leer ist. $.store.book[?(@.price<10)].author liefert Nigel. $..price liefert 8, 12 und 19.
  5. Alles löschen leert das Dokument, setzt den Pfad auf $ zurück und löscht die Anzahl. Ergebnis kopieren kopiert die JSON-Treffer.

Pfade, die diese Seite annimmt

$ ist die Wurzel. .key und ['key'] lesen eine Eigenschaft. [n] liest einen Index, und ein negativer Index zählt vom Ende. [*] liest jedes Element oder jede Eigenschaft. [start:end:step] schneidet ein Array, das Ende ausgeschlossen. [0,2] wählt diese Indizes. ..key geht durch jedes verschachtelte Objekt und sammelt diesen Schlüssel.

Ein Filter hat die Form [?(@.price<10)] oder [?(@.author=='Nigel')]. Die Vergleiche sind ==, !=, <, >, <= und >=. Text wird genau verglichen. Die Ordnung gilt für Zahlen. Der Filter läuft auf einem Array. Ein unbekannter Pfad oder JSON, das sich nicht parsen lässt, ist ein Fehler. Null Treffer sind ein gültiges leeres Array.

Wo man es nutzt

  • Ein Feld aus jedem Objekt einer Liste ziehen.
  • Die Zeilen behalten, deren Preis unter einer Zahl liegt.
  • Jeden Preis finden, auch solche, die in verschiedenen Objekten verschachtelt sind.

Fragen

Warum ist das Ergebnis ein Array, wenn es nur einen Autor gibt?

Jede Abfrage liefert die Liste der Treffer, also bleibt ein Treffer ein Array mit einem Element.

Funktioniert ein Skriptausdruck?

Filter sind ein Vergleich auf @ und seinen Feldern. Andere Skriptsyntax endet mit einem Fehler.