Okta Workflows ist eine No-Code-Plattform zur Automatisierung von Identitätsprozessen. Das Workflows-Team veranstaltet wöchentliche Sprechstunden, in denen es Fragen von Entwickler:innen beantwortet.
Dieser Blogbeitrag basiert auf einer Frage, die während der Sprechstunde gestellt wurde: Wie liest man einen JSON-Pfad mit Punktnotation in Workflows?
Erste Schritte
Wenn Sie Workflows-Automatisierungen erstellen, müssen Sie wahrscheinlich Werte aus einem JSON-Objekt auslesen. Zum Beispiel von einem externen API-Endpoint, der Daten als JSON zurückgibt. Workflows verfügen über zwei Karten zum Lesen (Abrufen) von Werten aus JSON:
- Objekt – Abrufen
- Objekt – Mehrere
Verwenden Sie das folgende JSON, um zu zeigen, wie die Karten funktionieren.
{
"product": "ice cream",
"ingredients": {
"ingredient": [{
"id": 100,
"type": "chocolate"
},
{
"id": 200,
"type": "vanilla"
},
{
"id": 300,
"type": "caramel"
}
]
},
"shop": {
"inventory": {
"instock": 100,
"ordered": 50
}
}
}
Die Punktnotation ist ein Pfad, der einem Element in JSON entspricht.
Zum Beispiel gibt ein Pfad von product Folgendes zurück:
ice cream
Verwenden der Karte „Object – Get“ zum Lesen von JSON
Verwenden Sie in Workflows Object – Get, um einen JSON-Pfad auszulesen:
Verwenden der Get-Karte zum Lesen von JSON-Pfaddaten
Diese Karte testen:
Testen der Karte „Get“
Sehen wir uns weitere Beispiele an.
Der Pfad ingredients.ingredient.0 führt zu:
{
"id": 100,
"type": "chocolate"
}
Ergebnis beim Testen mit der Object – Get -Karte:
Verwendung der Punktnotation im Pfad
Dabei ist zu beachten, dass der Ausgabetyp mit dem JSON-Typ übereinstimmen muss. Wenn der von Ihnen eingegebene Pfad Klartext abruft, sollte der Typ Text sein. Wenn der Pfad ein Objekt abruft, sollte der Typ auf Objekt gesetzt werden (andernfalls erhält man fehlerhafte Ergebnisse).
Ausgehend vom obigen Beispiel führt die Einstellung des Ausgabetyps auf Text zu folgendem Ergebnis:
Testen der Get-Karte mit einem falschen Ausgabetyp
Korrekten Ausgabetyp festlegen:
Testen der Get-Karte mit einem korrekten Ausgabetyp
Dieses Beispiel zeigt, wie Sie auf ein Array mit ingredients.ingredient.1.type zugreifen:
Zugriff auf ein Array über einen Pfad in Punktnotation
Beachten Sie, dass der Ausgabetyp auf Text festgelegt ist, da die Ausgabe ein String ist.
Ein weiteres Beispiel mit dem Pfad shop.inventory gibt Folgendes zurück
{
"instock": 100,
"ordered": 50
}
Testen der Get-Karte für den Zugriff auf ein JSON-Objekt
Beachten Sie, dass der Ausgabetyp auf Objekt festgelegt ist, da die Ausgabe ein Objekt ist.
Verwendung von „Objekt – Mehrere abrufen“ zum Lesen von JSON
Objekt – Abrufen gibt einen einzelnen JSON-Pfad aus. Die Karte Object – Get Multiple funktioniert ähnlich und kann mehrere Pfade ausgeben. Sie geben eine beliebige Anzahl von Pfaden ein, die Sie als Ausgabe benötigen:
Verwendung der Karte „Get multiple“
Beachten Sie, dass der Ausgabetyp bei Verwendung der Karte Object – Get Multiple im Pfad festgelegt wird.
Testen Sie die Karte „Get multiple“
Der JSONPath Online Evaluator ist ein Online-Tool, mit dem Sie Ihre Pfade in Punktnotation testen können.
JSONPath Online-Evaluator-Tool
Wenn Sie ein JSON-Beispiel validieren (und formatieren) müssen, verwenden Sie das JSON Lint -Tool.
Erhalten Sie Antworten auf Ihre Fragen zu Workflows
Haben Sie eine Frage zu Okta Workflows? Sie sind sich nicht sicher, wie Sie einen Flow erstellen? Nehmen Sie an den wöchentlichen Sprechstunden der Community teil, um Hilfe zu erhalten.