2016-08-03 15 views
1

Ich versuche, ein JSON-Array zu durchlaufen, das für die Speicherung in einer Warteschlange in eine Zeichenfolge codiert wurde. Allerdings habe ich die folgende Fehlermeldung:JSON-Array in Azure Logic App aus base64-codierter Zeichenfolge für For_each zu analysieren

{ "Code": "ExpressionEvaluationFailed", "message": "Die Ausführung Vorlage Aktion 'for_each' ist fehlgeschlagen: Das Ergebnis‚[{\ "Foo \" : \ "Bar \"}]‘von die Auswertung von 'foreach' action Ausdruck '@ {json (DecodeBase64 (triggerBody() [' content ']))}' ist keine gültige array"}

.

das folgende ist die Zeichenfolge analysiert werden: [{"Foo":"Bar"}]

Ich habe keine Probleme ein JSON String Parsen, wenn es nicht in einem Array ist, zum Beispiel: {"Foo":"Bar"}

Diese parst nur gut, wenn ich mich nicht ein For_each verwenden.

Wie bekomme ich die Logik-App, dies als ein Array zu lesen?

+0

ich sein würde versuchen, eine Array-Darstellung in Form zu testen {[{ "Foo": "Bar"}]} – evgenyl

Antwort

6

Das Problem hier ist, dass Sie die Zeichenfolgeninterpolation verwenden (wobei Ausdrücke in @ {...} eingeschlossen sind), die zu einer Zeichenfolgendarstellung des Arrays ausgewertet werden. Daher scheitert die Bewertung des Foreach-Ausdrucks.

Sie wollen, dass der Ausdruck @json(decodeBase64(triggerBody()['ContentData']))

+0

Sie sind absolut richtig, danke Szymon. Ich stolpere über den Fehler, während ich versuchte, eine azure-Funktion zu verwenden, um ein json-Array zurückzugeben. Hoffentlich hilft das jemand anderem. – Lance