Power Automate Parse JSON Action Anleitung

Power Automate Parse JSON Action Anleitung

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:

  1. JSON data
  2. JSON schema
8 Power Automate Parse JSON Action
Power Automate – Parse JSON Action

Wenn du beide bereitstellst, wirst du in der Lage sein, Daten aus den JSON-Daten innerhalb deines Flows leicht zu referenzieren.

8 Power Automate Parse JSON Get Values
Werte aus den JSON Daten

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.

  1. Erstelle einen neuen Cloud Flow

    Power Automate Create Instant Cloud Flow

    Neuen Cloud Flow erstellen

  2. Benenne deinen Flow, wähle ‚Manually trigger a flow‘ und klicke auf ‚Create‘

    Power Automate Create Flow

    Erstelle einen neuen Flow

  3. Füge eine HTTP-Aktion hinzu (Hinweis: Die HTTP-Action benötigt Premium)

    Power Automate HTTP Action

    Füge eine HTTP Action dazu

  4. 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

    Power Automate HTTP Action Configuration

    HTTP-Action konfigurieren

  5. Füge eine ‚Parse JSON‘ Action hinzu

    Power Automate Add Parse JSON Action

    Parse JSON Action

  6. Setze bei der Parse JSON Action Content auf Body indem du auf den Inhalt von Content klickst und dann auf Body

    Power Automate Parse JSON Content

    Parse JSON Content

  7. Klicke in der Parse JSON Action auf den ‚Generate from sample‘ Button

    Power Automate Parse JSON Schema Generate from sample button

    Parse JSON generate Schema

  8. Paste den Text unter sample data in die Text Area

    Power Automate Parse JSON Schema Insert a sample JSON Payload

    Paste sample data für die JSON Schema Generierung

  9. Füge eine Condition Action hinzu

    Power Automate Add Condition Action

    Condition Action

  10. Klicke auf das Textfeld für den linken Wert und dann auf „usd“ auf der rechten Seite

    Power Automate Condition Setup

    Condition Value

  11. Wähle ‚is less than‘ als Bedingung und setze das rechte Textfeld auf ‚20000‘

    Power Automate Condition Setup 2

    Condition Konfiguration

  12. Füge eine ‚Send an email (V2)‘ Action in dem ‚If yes‘ Zweig hinzu

    Power Automate Send an email

    Send an email (V2) hinzufügen

  13. Setze To,Subject und Body wie du magst

    Power Automate Send an email setup

    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:

nameagegender
John Smith23male
Sally Smith47
Persons Tablele

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.

8 Power Automate Parse JSON Schema Generate from sample
Parse JSON – Generate from sample
8 Power Automate Parse JSON Insert a sample JSON Payload
Parse JSON – Insert a JSON payload
8 Power Automate Parse JSON generate schema example
Parse JSON – Generiertes JSON Schema

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.

8 Power Automate Parse JSON ValidationFailed The schema validation failed
Parse JSON – ValidationFailed. The schema validation failed.

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.

7 Power Automate get json data without Parse Json
Zugriff auf JSON Daten mit einer Expression ohne Parse JSON Action

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:

  1. Konvertiere eine Zeichenfolge zu XML: xml(‚<root><name>Joe</name></root>‘)
  2. 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:

7 Power Automate Parse XML to JSON
XML-JSON Konvertierung
json(xml(outputs('Compose_XML')))
7 Power Automate JSON and xml function to convert XML to JSON
Ergebnis derXML zu JSON Konvertierung

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:

7 Power Automate Parse JSON array
JSON Array parsen

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.

7 Power Automate Parse JSON null values
Parse JSON mit Nullwerten

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert