JSON mit JMESPath abfragen#
JMESPath ist eine Abfragesprache für JSON, mit der Sie Elemente aus einem JSON-Dokument extrahieren und transformieren können. Ausführliche Informationen zur Verwendung von JMESPath finden Sie in der JMESPath-Dokumentation.
Die jmespath()
Methode#
Localmind Automate bietet eine benutzerdefinierte Methode, jmespath()
. Verwenden Sie diese Methode, um eine Suche in einem JSON-Objekt mit der JMESPath-Abfragesprache durchzuführen.
Die grundlegende Syntax lautet:
1 |
|
1 |
|
Um besser zu verstehen, was die Methode bewirkt, hier die äquivalente längere JavaScript-Version:
1 2 |
|
Ausdrücke müssen einzeilig sein
Das längere Codebeispiel funktioniert nicht in Ausdrücken, da diese einzeilig sein müssen.
object
ist ein JSON-Objekt, z. B. die Ausgabe eines vorherigen Knotens. searchString
ist ein Ausdruck in der JMESPath-Abfragesprache. Die JMESPath-Spezifikation enthält eine Liste der unterstützten Ausdrücke, während ihr Tutorial und ihre Beispiele interaktive Beispiele bieten.
Suchparameterreihenfolge
Die Beispiele in der JMESPath-Spezifikation folgen dem Muster search(searchString, object)
. Die JMESPath-JavaScript-Bibliothek, die Localmind Automate verwendet, unterstützt stattdessen search(object, searchString)
. Dies bedeutet, dass Sie bei der Verwendung von Beispielen aus der JMESPath-Dokumentation möglicherweise die Reihenfolge der Suchfunktionsparameter ändern müssen.
Häufige Aufgaben#
Dieser Abschnitt enthält Beispiele für einige häufige Operationen. Weitere Beispiele und detaillierte Anleitungen finden Sie in der JMESPath eigenen Dokumentation.
Wenn Sie diese Beispiele ausprobieren, müssen Sie den Modus des Code-Knotens auf Einmal für jedes Element ausführen einstellen.
Anwenden eines JMESPath-Ausdrucks auf eine Sammlung von Elementen mit Projektionen#
Aus der JMESPath-Dokumentation zu Projektionen:
Projektionen sind eines der Hauptmerkmale von JMESPath. Verwenden Sie sie, um einen Ausdruck auf eine Sammlung von Elementen anzuwenden. JMESPath unterstützt fünf Arten von Projektionen:
- Listenprojektionen
- Slice-Projektionen
- Objektprojektionen
- Flatten-Projektionen
- Filterprojektionen
Das folgende Beispiel zeigt die grundlegende Verwendung von Listen-, Slice- und Objektprojektionen. Ausführliche Erklärungen zu den einzelnen Projektionstypen und weitere Beispiele finden Sie in der JMESPath-Dokumentation zu Projektionen.
Gegeben dieses JSON von einem Webhook-Knoten:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
|
Abrufen einer Liste aller Vornamen der Personen:
1 2 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
Abrufen eines Slice der Vornamen:
1 2 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
Abrufen einer Liste der Altersangaben der Hunde mithilfe von Objektprojektionen:
1 2 |
|
1 2 3 4 5 6 7 8 9 10 11 12 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
Auswählen mehrerer Elemente und Erstellen einer neuen Liste oder eines neuen Objekts#
Verwenden Sie Multiselect, um Elemente aus einem JSON-Objekt auszuwählen und zu einer neuen Liste oder einem neuen Objekt zusammenzufassen.
Gegeben dieses JSON von einem Webhook-Knoten:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
|
Verwenden Sie die Multiselect-Liste, um die Vor- und Nachnamen abzurufen und neue Listen zu erstellen, die beide Namen enthalten:
1 2 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
Eine Alternative zu Pfeilfunktionen in Ausdrücken#
Erzeugen Sie beispielsweise einige Eingabedaten, indem Sie den folgenden Code vom Code-Knoten zurückgeben:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
|
Sie könnten eine Suche wie "Finde das Element mit dem Namen Lenovo und nenne mir die Kategorie-ID" durchführen.
1 |
|