ADF中使用Foreach循环读取JSON脚本数组输出时遇到问题
嵌套JSON数组遍历解决方案
错误原因
你报错的核心问题是:result是数组类型(JSON里外层的[]标识),直接通过@activity('script').output.result.Val访问相当于在数组对象上查找Val属性,而数组本身没有这个属性,因此触发“无法计算长度,因为属性值不存在”的错误。
正确遍历方法
根据你的JSON结构,分两种场景处理:
场景1:result数组仅含1个元素(即当前输出结构)
直接定位到Val数组,将Foreach循环的数据源设置为:
@activity('script').output.result[0].Val
循环体内可通过@item().pqr或@item().srt访问每个子对象的属性。
场景2:result数组可能包含多个带Val的元素
需要嵌套遍历:
- 外层Foreach循环数据源设为:
@activity('script').output.result - 外层循环体内,针对当前元素的
Val数组做内层遍历(或直接处理),内层数据源设为:
同样用@item().Val@item().pqr/@item().srt访问子属性。
示例验证
用你的JSON输出测试:
- 执行
@activity('script').output.result[0].Val会返回:
这是有效的数组,可正常被Foreach循环遍历。[{"pqr":1,"srt":2},{"pqr":1,"srt":2}]
内容的提问来源于stack exchange,提问作者Being Real
相关产品推荐
相关产品推荐

