如何在Azure Pipeline ForEach循环中正确迭代JSON对象列表
问题根因
你当前使用的@array(activity('Craig_TestingForEach').output.Response)写法存在逻辑错误:Craig_TestingForEach返回的Response是JSON字符串格式的数组,并非Azure可直接识别的数组对象,array()函数只会将整段字符串作为数组的唯一元素,因此ForEach循环仅执行1次。
解决方案
将ForEach的「Items」配置替换为以下表达式即可:
@json(activity('Craig_TestingForEach').output.Response)
json()函数会自动将序列化的JSON字符串反序列化为对应结构的对象数组,包含多少个EmailModel对象就会生成对应长度的数组,ForEach可正常遍历每个对象完成邮件发送。
验证建议
你可以在ForEach动作前新增一个Compose(撰写)动作,将上述表达式填入Compose的输入项,运行工作流后查看Compose的输出,确认已解析为包含多个独立对象的数组后,再绑定到ForEach的Items配置即可。
内容的提问来源于stack exchange,提问作者Craig_Th
相关产品推荐
相关产品推荐

