Die Power Automate „Parse JSON“-Action vereinfacht die Verarbeitung von JSON-Daten innerhalb deines Flows.
In diesem Artikel findest du eine beispielhafte Schritt-für-Schritt-Anleitung, wie du JSON-Daten aus einer HTTP-Anfrage parsen kannst.
Du wirst eine kurze Einführung in das JSON-Format und in JSON-Schemas erhalten.
Neben dem Erlernen, wie man JSON-Daten in Power Automate parst, wirst du auch erfahren, wann du die „Parse JSON“-Action vermeiden solltest.
Was macht die Parse JSON Action in Power Automate?
Das JSON-Datenformat ist allgegenwärtig, wenn du mit Microsoft Flows arbeitest. Der Rückgabewert deines HTTP-Aufrufs gegen eine Rest-API, Elemente einer SharePoint-Liste, CSV-Daten und vieles mehr liegen im JSON-Format vor.
Die „Parse JSON“-Action benötigt zwei Informationen, um zu funktionieren:
- JSON data
- JSON schema
Wenn du beide bereitstellst, wirst du in der Lage sein, Daten aus den JSON-Daten innerhalb deines Flows leicht zu referenzieren.
Die Parse JSON-Aktion erleichtert den Zugriff auf die Daten und deren Verarbeitung.
Lass uns in ein reales Beispiel eintauchen!
Wie man Parse JSON in Power Automate verwendet
Dies ist ein einfaches Beispiel dafür, wie die Power Automate Parse JSON-Action verwendet wird.
Wir werden die API von CoinGecko aufrufen, um den aktuellen Wert eines Bitcoins in US-Dollar zu erhalten. Wir senden uns eine E-Mail, wenn der Wert unter 20.000 $ liegt.
-
Erstelle einen neuen Cloud Flow
Neuen Cloud Flow erstellen
-
Benenne deinen Flow, wähle ‚Manually trigger a flow‘ und klicke auf ‚Create‘
Erstelle einen neuen Flow
-
Füge eine HTTP-Aktion hinzu (Hinweis: Die HTTP-Action benötigt Premium)
Füge eine HTTP Action dazu
-
Konfiguriere die HTTP-Action: Setze die Methode auf „GET“ und die URI auf ‚https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd‚
HTTP-Action konfigurieren
-
Füge eine ‚Parse JSON‘ Action hinzu
Parse JSON Action
-
Setze bei der Parse JSON Action Content auf Body indem du auf den Inhalt von Content klickst und dann auf Body
Parse JSON Content
-
Klicke in der Parse JSON Action auf den ‚Generate from sample‘ Button
Parse JSON generate Schema
-
Paste den Text unter sample data in die Text Area
Paste sample data für die JSON Schema Generierung
-
Füge eine Condition Action hinzu
Condition Action
-
Klicke auf das Textfeld für den linken Wert und dann auf „usd“ auf der rechten Seite
Condition Value
-
Wähle ‚is less than‘ als Bedingung und setze das rechte Textfeld auf ‚20000‘
Condition Konfiguration
-
Füge eine ‚Send an email (V2)‘ Action in dem ‚If yes‘ Zweig hinzu
Send an email (V2) hinzufügen
-
Setze To,Subject und Body wie du magst
Send an email (V2) Konfiguration
JSON Grundlagen
JSON (JavaScript Object Notation) ist ein leichtgewichtiges Daten-Austauschformat. Wenn du bereits XML kennst, kannst du schnell verstehen, was JSON ist. Es ist im Wesentlichen eine schlankere Version von XML. Ich möchte nicht tief in JSON eintauchen, sondern nur die wesentlichen Grundlagen erklären.
JSON Beispiel
Stell dir vor, wir haben eine Tabelle von Personen:
name | age | gender |
---|---|---|
John Smith | 23 | male |
Sally Smith | 47 |
Die Tabellendaten können in JSON folgendermaßen beschrieben werden:
[
{
"name": "John Doe",
"age": 23,
"gender": "male"
},
{
"name": "Sally Smith",
"age": 47
}
]
Wie du vielleicht schon am Beispiel bemerkt hast:
- Collections (Sammlungen) werden durch eckige Klammern gekennzeichnet: [ {Person 1}, {Person 2}, … ]
- Elemente innerhalb einer Sammlung werden durch Kommas getrennt: [ {Person 1}, {Person 2}, … ]
- Objekte stehen immer in geschweiften Klammern: { „name“ : „John Doe“ }
- Spaltennamen stehen immer in Anführungszeichen: { „name“ : „John Doe“ }
- Textwerte stehen immer in Anführungszeichen: { „name“ : „John Doe“ }
- Zahlenwerte benötigen keine Anführungszeichen: { „age“ : 23 }
- Eigenschaften von Objekten werden durch Kommas getrennt: { „name“: „John Doe“, „age“: 23 }
Aus meiner Sicht sind dies die wichtigsten Konzepte, die man verstehen muss.
JSON Schema Beispiel
Die Power Automate Parse JSON-Aktion benötigt ein Schema, aber was ist ein Schema? Ein JSON Schema beschreibt die Struktur der Daten. Das Schema selbst ist in JSON definiert.
Die Power Automate Parse JSON-Action ermöglicht es dir, ein Schema für dein JSON zu generieren, indem du Beispiel-JSON-Daten angibst.
So sieht das Schema für unsere Datenstruktur aus:
{
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"age": {
"type": "integer"
},
"gender": {
"type": "string"
}
},
"required": [
"name",
"age"
]
}
}
Auf diesem Weg kannst du dir sehr einfach ein JSON schema generieren.
Aber sei vorsichtig, es gibt einige Risiken bei diesem Ansatz!
Der Schema-Generator kann nur anhand Daten ein Schema erzeugen. Zum Beispiel listet der Generator das „gender“ nicht unter „required“ auf. Der Generator hat bemerkt, dass der zweite Datensatz kein Geschlecht hat, daher muss das Feld optional sein.
Wenn du das Schema basierend auf einer Sammlung erstellst, die nur den ersten Datensatz enthält, bei dem das Geschlecht festgelegt ist, wäre das Geschlecht im Schema „required“. Dies würde zu einer „ValidationFailed. The schema validation failed.“ -Fehlermeldung führen, wenn du einen Datensatz ohne Geschlecht analysierst.
Du kannst dies leicht beheben, indem du dein Schema manuell anpasst, aber bitte beachte, dass deine Beispieldaten möglicherweise nicht ausreichend detailliert sind, um den Schema-Generator perfekt arbeiten zu lassen.
Beachte, dass das Fehlen von erforderlichen Eigenschaften im Objekt nur eine Situation ist, in der die Validierung fehlschlagen kann.
Wenn du eine komplexere Datenstruktur hast, solltest du nicht auf den Schema-Generator verlassen.
Wann du Power Automate Parse JSON vermeiden solltest und was du stattdessen tun solltest
Wenn du keine Kontrolle über eine komplexe Datenstruktur hast, ist es möglicherweise besser, die Parse JSON-Action nicht zu verwenden.
Du kannst die benötigten Daten aus der JSON-Datenstruktur extrahieren, indem du nur Ausdrücke verwendest. Auf diese Weise verlässt du dich nur auf die Daten, die von deinem Flow benötigt werden. Du stellst keine anderen Erwartungen an die verwendeten Daten.
Auf diese Weise wird dein Flow weniger anfällig, falls sich die Daten ändern. Auf der negativen Seite ist das Schreiben von Ausdrücken komplexer als die Verwendung der Parse JSON-Action.
Auf dem Bild unten siehst du, wie du auf den USD-Wert eines Bitcoins aus unserem Beispiel am Anfang dieses Artikels zugreifen kannst. Auf diese Weise benötigst du keine Parse JSON-Aktion. Du schreibst einfach das benötigte JSON in eine Variable.
Selbst wenn unser Beispiel recht einfach ist, kannst du dir bereits vorstellen, wie komplex die Ausdrücke werden können, wenn du eine tief verschachtelte Datenstruktur hast.
float(body('HTTP')['bitcoin']['usd'])
Json Function
Die JSON-Funktion konvertiert eine Zeichenfolge oder XML in JSON.
Syntax
json( value )
Parameter
- value (Pflichtfeld): Zeichenfolge oder XML, das in JSON umgewandelt werden soll.
Rückgabewert
- Das JSON für den angegebenen Wert.
Beispiel – XML in JSON umwandeln
Verwende die Power Automate json-Funktion, um XML in JSON umzuwandeln.
So konvertierst du XML mit Power Automate in JSON:
- Konvertiere eine Zeichenfolge zu XML: xml(‚<root><name>Joe</name></root>‘)
- Konvertiere das XML aus Schritt 1 zu JSON: json(xml(‚<root><name>Joe</name></root>‘) )
Sieh dir das Beispiel unten an, wie du XML mit Power Automate in JSON konvertierst:
json(xml(outputs('Compose_XML')))
Mit JSON Arrays arbeiten
Du fragst dich vielleicht, wie du ein JSON-Array parst und über alle zurückgegebenen Elemente iterierst. Tatsächlich ist es recht einfach, wie du im Bild unten sehen kannst:
Parsen vonJSON-Nullwerte
Um Nullwerte in JSON zu markieren, wird das Schlüsselwort „null“ verwendet. Die Parse JSON-Aktion kann fehlschlagen, wenn du eine Eigenschaft definiert hast, die beispielsweise vom Typ Zeichenfolge ist und null bereitgestellt wird.
Um diese Situationen zu behandeln, passe dein Schema einfach wie unten gezeigt an:
"name" : {
"type" : ["string","null"]
}
Auf diese Weise sind auch Nullwerte erlaubt.