从 base64 编码字符串解析 Azure 逻辑应用程序中的 JSON 数组以在 For_each 中使用

Parsing JSON array in Azure Logic App from base64 encoded string to use in For_each

我正在尝试遍历 JSON 数组,该数组已编码为字符串以便存储在队列中。但是,我收到以下错误消息:

{"code":"ExpressionEvaluationFailed","message":"The execution of template action 'For_each' failed: The result '[{\"Foo\":\"Bar\"}]' of the evaluation of 'foreach' action expression '@{json(decodeBase64(triggerBody()['ContentData']))}' is not a valid array."}

下面是正在解析的字符串: [{"Foo":"Bar"}]

JSON 字符串不在数组中时,我可以毫无问题地解析它,例如: {"Foo":"Bar"}

当我不使用 For_each.

时,这解析得很好

如何让逻辑应用将其作为数组读取?

这里的问题是您正在使用字符串插值(其中表达式包含在 @{ ... } 中),其计算结果为数组的字符串表示形式。因此 'foreach' 表达式的计算失败。

您希望表达式为 @json(decodeBase64(triggerBody()['ContentData']))

 json(decodeBase64(body('HTTP')?['$Content']))

enter image description here