Azure ADF:如何将Lookup活动输出的value标签替换为items?
Azure ADF Lookup输出适配Web API请求体问题解决
1. 如何将Lookup输出的"value"替换为"items"
直接在Web活动的请求体中使用ADF表达式构造符合API要求的结构,两种常用实现方式:
- 方式一(推荐,更简洁):使用
createObject函数
该函数会直接生成@createObject('items', activity('lookupsql').output.value){"items": [Lookup返回的结果数组]}的结构,完全匹配API的输入要求。 - 方式二:字符串拼接构造JSON
先将Lookup的@json(concat('{"items": ', string(activity('lookupsql').output.value), '}'))value数组转为字符串,拼接成符合格式的JSON字符串后,再转成JSON对象。
两种方式均可直接填写在Web活动的请求体输入框中,无需额外添加转换活动。
2. 当前处理方式是否正确?
需根据数据量规模判断:
- 数据量≤5000条时:当前Lookup+Web的流程是可行的,但需确保Lookup活动关闭First row only选项,保证返回所有查询到的行数据。
- 数据量>5000条时:Lookup活动的批量返回模式最多仅能返回5000条数据,此时原流程会丢失数据,需调整方案:
- 方案一:用Copy Activity将SQL查询结果导出到Blob存储的JSON文件(设置导出格式为数组),再通过Web活动读取文件内容,构造
{"items": [文件内容]}的请求体。 - 方案二:使用Data Flow将SQL数据转换为API要求的结构后,再通过Web活动发送(适合复杂转换场景)。
- 方案一:用Copy Activity将SQL查询结果导出到Blob存储的JSON文件(设置导出格式为数组),再通过Web活动读取文件内容,构造
内容的提问来源于stack exchange,提问作者Embark6655
相关产品推荐
相关产品推荐

