在Azure Data Factory(ADF)中如何获取JSON数组的元素个数?
你不需要使用递归循环活动,ADF本身内置了数组长度计算的length()函数,可以直接获取GroupIds的元素数量,分两种常用场景使用:
场景1:在数据流(Data Flow)中处理JSON源
如果你的数据处理逻辑是在数据流中完成:
- 添加派生列活动,新增两个字段:
- 存储Id的字段直接取值
Id - 存储GroupIds长度的字段取值
length(GroupIds)
- 存储Id的字段直接取值
- 后续直接将两个派生列映射到数据库的对应列即可。
如果要兼容GroupIds为null的场景,可以改写为
iif(isNull(GroupIds), 0, length(GroupIds))避免运行报错。
场景2:在管道表达式中处理
如果是在复制活动附加列、变量赋值等管道级别的场景使用:
- 先将JSON内容解析为对象,再调用length函数,示例表达式如下:
- 取Id:
json(<你存储JSON内容的字段/变量>).Id - 取GroupIds长度:
length(json(<你存储JSON内容的字段/变量>).GroupIds)
比如JSON内容存在名为jsonInput的变量中,取长度的表达式为length(json(variables('jsonInput')).GroupIds)
- 取Id:
内容的提问来源于stack exchange,提问作者SUMguy
相关产品推荐
相关产品推荐

