Анализ массива JSON в приложении Azure Logic из строки в кодировке base64 для использования в For_each

Я пытаюсь выполнить итерацию по массиву JSON, который был закодирован в строку с целью хранения в очереди. Однако я получаю следующее сообщение об ошибке:

{"code": "ExpressionEvaluationFailed", "message": "Не удалось выполнить действие шаблона 'For_each': результат '[{\" Foo \ ": \" Bar \ "}]' оценки 'foreach' Выражение действия '@ {json (decodeBase64 (triggerBody () [' ContentData ']))}' не является допустимым массивом. "}

Ниже приводится анализируемая строка: [{"Foo":"Bar"}]

У меня нет проблем с синтаксическим анализом строки JSON, когда она не находится в массиве, например: {"Foo":"Bar"}

Это прекрасно разбирается, когда я не использую For_each.

Как заставить приложение логики читать это как массив?


comment
Я бы попробовал протестировать представление массива в виде {[{Foo: Bar}]}   -  person evgenyl    schedule 04.08.2016


Ответы (1)


Проблема здесь в том, что вы используете строковую интерполяцию (где выражения заключены в @ {...}), которая вычисляет строковое представление массива. Следовательно, вычисление выражения foreach не выполняется.

Вы хотите, чтобы выражение было @json(decodeBase64(triggerBody()['ContentData']))

person Szymon Wylezol    schedule 03.08.2016
comment
Вы абсолютно правы, спасибо Шимон. Я наткнулся на ошибку, когда пытался использовать лазурную функцию для возврата массива json. Надеюсь, это поможет кому-то другому. - person Lance; 04.08.2016