如何在ADF接收器中输出指定格式的JSON数组字段?
在Azure Data Factory中将SQL Server字段转为JSON数组格式的实现方案
一、SQL数据源端直接构造数组
ADF复制任务默认会按字段原生类型映射输出,单个值无法自动转为数组。你可以修改SQL查询,将目标字段包装为JSON数组格式:
SELECT JSON_QUERY(CONCAT('[', DepartmentUserMemberships, ']')) AS DepartmentUserMemberships FROM YourTargetTable
- 使用
CONCAT('[', 字段值, ']')将单个值拼接成数组结构的字符串 - 外层嵌套
JSON_QUERY,避免ADF将整个字符串再次转义,确保输出为原生JSON数组
二、ADF内部转换实现
如果不想修改SQL语句,可通过ADF的转换能力处理:
- 映射数据流/派生列:添加派生列,使用
array()函数包装字段值,表达式为:
array(DepartmentUserMemberships)
将派生后的列作为输出字段,替换原字段即可将单个值转为数组格式。
- 复制活动映射派生列:在复制活动的「映射」设置中启用派生列,同样用
array(DepartmentUserMemberships)构造数组。
三、SQL Server原生数据类型能否自动映射为数组
目前SQL Server没有原生数据类型能让ADF复制任务自动识别并输出为JSON数组。即使使用JSON类型存储[1]这样的数组字符串,本质也是通过JSON格式字符串转义实现,并非自动将单个值映射为数组。因此优先选择上述两种方案。
内容的提问来源于stack exchange,提问作者Chicago1988
相关产品推荐
相关产品推荐

