JSON-Tools

JMESPath-TesterDaten auswählen und neu zusammensetzen

Führen Sie den Altersfilter per Schaltfläche oder Ctrl/Cmd+Enter aus. Nach Änderungen muss die Abfrage erneut laufen.

JMESPath-Tester

JSON-Eingabe

Ergebnis

Vorschau in Blöcken zu 5.000 Zeichen. Kopie und Download enthalten das ganze Ergebnis.

JSON und Ausdrücke bleiben im Browserspeicher und werden nicht gespeichert.

Offizielles jmespath.js 0.16.0 · Sicherheitspatches · 26 Standardfunktionen

Ergebnis veraltet; Kopie und Download sind gesperrt.

Der JMESPath-Tester hilft, wenn eine Cloud-Antwort viele JSON-Daten enthält, Ihr Skript aber nur Namen oder eine Anzahl braucht. Prüfen Sie die Form des Rückgabewerts, bevor Sie die Abfrage in eine Befehlszeile übernehmen.

Ein JMESPath-Ausdruck kann ein Objekt, eine Liste oder einen einzelnen Wert liefern. Die Beispielabfragen zeigen, wie sich das Auswählen vorhandener Felder vom Aufbau eines neuen Objekts unterscheidet.

Warum dieser JMESPath-Tester?

Erst filtern, dann Felder auswählen

Eine Bedingung behält passende Personen; die anschließende Projektion liefert ihre Namen. Projektionen lassen null-Ergebnisse aus. Deshalb muss die Anzahl der ausgegebenen Werte nicht der Zahl der Eingabeelemente entsprechen.

Datensätze passieren einen Filter; ausgewählte Felder bilden eine kleinere Liste.

Die benötigte Ausgabeform erstellen

Fassen Sie Namen und Anzahl in einem Objekt zusammen oder sortieren Sie nach einem Feld. Der JMESPath-Tester macht sichtbar, welche Schlüssel und Datentypen Ihr nächster Verarbeitungsschritt tatsächlich erhält.

Felder bilden ein neues Objekt, während eine Funktion eine Sammlung auf einen Wert reduziert.

Datentypen und Aktualität prüfen

01

Striktes JSON vorbereiten

Fügen Sie Text ein oder laden Sie eine lokale Datei mit höchstens 500.000 Bytes. Der gelesene Text darf 500.000 Zeichen enthalten. Import, Beispiel und Leeren zeigen zuerst eine Vorschau; einmaliges Rückgängigmachen stellt auch Ausdruck und Ergebnis wieder her. Dateien müssen gültiges UTF-8 enthalten. Ein BOM wird nicht entfernt und führt bei der JSON-Prüfung zum Fehler.

02

Änderungen bewusst ausführen

Es gibt keine automatische Ausführung. Ctrl/Cmd+Enter startet ebenfalls die Abfrage. Ein Beispielausdruck ändert nur den Ausdruck; jede Bearbeitung macht das alte Ergebnis ungültig und sperrt den Export bis zum nächsten Erfolg.

03

Wert und Vorschau unterscheiden

null, false, 0, ein leerer String und [] sind mögliche erfolgreiche Ergebnisse. Die Vorschau wächst um jeweils 5.000 Zeichen; Kopie und Download enthalten immer das vollständige akzeptierte Ergebnis.

Filtern, konstruieren und berechnen

Bedingungen für Array-Elemente

people[?age >= `18`].name vergleicht das Alter numerisch und projiziert Namen. Zahlenliterale stehen zwischen Backticks. Eine Zahl und ein String mit Ziffern sind unterschiedliche Typen.

Benannte Felder im Ergebnis

{names: people[].name, count: length(people)} erzeugt ein neues Objekt ohne Änderung der Quelle. Mehrfachauswahllisten können null-Werte an ihrer Position behalten, die eine Projektion auslassen würde.

Pipes und Funktionsreferenzen

Eine Pipe gibt das komplette linke Ergebnis rechts weiter. sort_by benötigt beispielsweise &age als Ausdrucksreferenz; das ist kein gewöhnlicher Feldname als String. length und contains erwarten ebenfalls definierte Argumenttypen.

Fehler mit klarer Ursache

Ungültiges JSON, fehlerhafte Syntax, unbekannte Funktionen sowie falsche Argumentanzahl oder Argumenttypen werden getrennt gemeldet. Ein fehlender Schlüssel kann dagegen erfolgreich null liefern.

Sprachumfang und Ressourcenlimits

Festgelegte Implementierung
Verwendet wird das offizielle jmespath.js 0.16.0 mit Sicherheitspatches und 26 Standardfunktionen. JSONPath, jq, group_by, Regex-Erweiterungen, eigene Funktionen und beliebiges JavaScript werden nicht ausgeführt. Backticks dürfen nur striktes JSON enthalten; Rohstrings verwenden einfache Anführungszeichen. Ausdrucksreferenzen dienen nur als Funktionsargumente, nicht als Ausgabewerte.
Keine exakte Dezimalrechnung
Kommentare, nachgestellte Kommas und doppelte Schlüssel werden abgelehnt. Unsichere Ganzzahlen und Überläufe in Eingabe, Literalen oder Ergebnis führen zu Fehlern. Dezimalwerte nutzen JavaScript-Zahlen; ihre ursprüngliche Schreibweise bleibt nicht erhalten. Unsichere Zwischensummen in sum oder avg werden auch dann abgelehnt, wenn das mathematische Endergebnis sicher wäre.
Begrenzte Ausführung
Es gelten 500.000 Eingabezeichen, 2.000 Ausdruckszeichen und 2.000.000 Ausgabezeichen sowie Struktur- und Auswertungsbudgets. Der Worker wird nach 2 Sekunden gestoppt. Bei Überschreitung gibt es keinen unvollständigen Download.
Werte statt Quellpfade
Die Ausgabe ist ein JSON-Wert, keine Liste normalisierter Fundstellen. Rekursive JSONPath-Suche, Quellbearbeitung und CSV-Export sind nicht enthalten. Ein fehlendes Feld und ein ausdrückliches null können dasselbe Ergebnis liefern.
Nur im Arbeitsspeicher
Die Seite speichert keinen Verlauf, lädt keine URLs und erstellt keine Freigabelinks mit Daten. Lokale Dateien werden im Browser verarbeitet. Beim Neuladen geht die aktuelle Arbeit verloren.

Fragen zum JMESPath-Tester

Wie erhalte ich mehrere Werte?

Eine Mehrfachauswahl kann mehrere Werte bündeln: {names: people[].name, count: length(people)} liefert ein Objekt mit einer Liste und einer Anzahl. Die Eingabe selbst wird dabei nicht geändert.

Wie benenne ich Eigenschaften in einer Abfrage um?

Schreiben Sie einen neuen Schlüssel vor den Doppelpunkt, etwa people[].{label: name}. label ist der Ausgabename, name das gelesene Feld. Ein fehlendes Feld kann als null im neuen Objekt erscheinen.

Wie lese ich Eigenschaften aus einem Array?

people[].name projiziert das Feld name auf die Elemente des Arrays. null-Ergebnisse werden in dieser Projektion ausgelassen. Prüfen Sie die tatsächliche Array-Ebene, wenn statt einer Liste null entsteht.

Welche Funktionen kann ich verwenden?

Der JMESPath-Tester bietet die 26 Standardfunktionen von jmespath.js 0.16.0, etwa length, sort_by, contains und sum. group_by und eigene Erweiterungen gehören nicht dazu. Falsche Argumenttypen lösen Fehler aus.

Wie funktionieren Pipeausdrücke?

Bei people[].name | [0] erhält die rechte Seite zunächst die gesamte Namensliste und wählt dann das erste Element. Die Pipe steuert die JSON-Auswertung und führt keine Shell-Befehle aus.

Wird eine Abfrage falsch ausgewertet?

Mit einem kleinen Ausdruck beginnen

Ändern Sie im JMESPath-Tester zunächst eine Bedingung und prüfen Sie den Rückgabetyp, bevor Sie eine größere Antwort verwenden.