You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure Data Factory中将SQL行转换为JSON对象数组?

Azure Data Factory 动态生成API请求JSON数组解决方案

针对你的需求,提供三种可行的实现方式,按需选择:

方法一:SQL层直接构造目标JSON数组

直接在SQL查询中生成符合要求的JSON数组,无需额外转换:

SELECT 
  'ID_ISIN' AS idType,
  isin AS idValue
FROM your_sql_table
FOR JSON PATH, ROOT('')
  • FOR JSON PATH会将每行转换为指定键值对的JSON对象
  • ROOT('')会去掉默认的根节点,直接返回纯数组格式
  • 用ADF的Lookup活动执行该查询,获取的结果可直接作为API请求体

方法二:ADF数据流实现转换

适合数据量较大的场景,全程在数据流中完成转换:

  1. 数据源:连接SQL表,读取含isin列的行数据
  2. 派生列活动:新增两个固定/映射列
    • idType:赋值为固定字符串 'ID_ISIN'
    • idValue:直接映射原表的isin列
  3. 聚合活动:将所有行聚合为数组
    • 分组依据留空(不分组)
    • 添加聚合列(如命名为jsonArray),使用表达式:
      collect(@(idType=idType, idValue=idValue))
      
  4. 输出到API:
    • 若用数据流的REST Sink,直接将jsonArray作为请求体
    • 也可将结果写入Blob存储,再用Lookup活动读取后传入Web活动

方法三:Lookup + Set Variable 拼接数组

适合数据量较小的场景,通过ADF控制流实现:

  1. Lookup活动:执行查询SELECT isin FROM your_sql_table,取消勾选"第一行仅",获取所有行的数组结果
  2. Set Variable活动:创建一个数组类型的变量,用表达式生成目标数组:
    @foreach(item in activity('LookupSQL').output.value, createObject('idType', 'ID_ISIN', 'idValue', item.isin))
    
  3. Web活动:在请求体中直接引用该变量:@variables('yourTargetArrayVar'),并设置Content-Type为application/json

注意事项

  • 若数据量超过1000行,Lookup活动会有分页限制,优先选方法一或方法二
  • 测试时开启ADF Debug模式,查看每个活动的输出,验证JSON结构是否符合API要求

内容的提问来源于stack exchange,提问作者Scorpia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 17:36:30