如何在ADF中将API返回数据存入数组变量并实现遍历?
在Azure Data Factory中将Web Activity的字符串响应转为数组变量
你遇到的问题是Web Activity返回的Response字段是JSON字符串格式的数组,而非直接的数组类型,无法直接赋值给数组变量。解决方法是利用ADF内置的json()函数将字符串解析为数组,具体步骤如下:
修改Set Variable活动的表达式
不要直接引用Web Activity的输出,而是使用json()函数解析Response字段。假设你的Web Activity名称为Call REST API,那么Set Variable的表达式应为:@json(activity('Call REST API').output.Response)替换
Call REST API为你实际的Web Activity名称即可。验证解析结果
运行调试后,查看apiCallOutput变量的内容,此时它应该是包含3个对象的数组类型,结构与浏览器中直接调用API返回的一致。遍历数组变量
后续可通过ForEach Activity遍历该数组,在ForEach的Items属性中填写:@variables('apiCallOutput')循环内可通过
@item().name、@item().id来访问每个元素的属性。
注意事项
- 确保
Response字段的字符串是有效的JSON格式,若存在语法错误,json()函数会抛出异常,需检查API返回的字符串转义是否正确。 - 若需处理异常场景(如Response为空、格式错误),可添加If Condition活动做前置判断。
内容的提问来源于stack exchange,提问作者UnskilledCoder
相关产品推荐
相关产品推荐

