如何在Azure Data Factory中处理JSON数据并获取对象键名用于ForEach迭代
解决Azure Data Factory Lookup活动读取JSON对象键名的报错问题
报错原因
- 报错的本质是类型不匹配:
activity('Lookup for env parameters').output.firstRow.countries对应的是JSON对象类型,不是数组类型,ADF不支持用[0]这种数组下标访问对象属性,只有数组才能用数字索引取值,对象只能通过属性名或者专用函数操作。
解决方案
你需要用ADF内置的keys()函数提取对象的所有属性名,这个函数会把对象的所有键名按数组格式返回,刚好可以直接用于ForEach活动的遍历输入:
第一步:生成遍历用的国家代码数组
直接把如下表达式填入ForEach活动的Items配置项即可:@keys(activity('Lookup for env parameters').output.firstRow.countries)
该表达式执行后会直接返回你需要的["NO", "BR"]数组,完全匹配你的遍历需求。
第二步:ForEach内部取值逻辑
在ForEach循环内部,如果你需要获取当前国家对应的wells配置,可以用如下表达式取值:@activity('Lookup for env parameters').output.firstRow.countries[item()].wells
其中item()是ForEach循环内置变量,对应当前遍历到的国家代码(即NO/BR)。
内容的提问来源于stack exchange,提问作者Gorib_coder
相关产品推荐
相关产品推荐

