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

如何在Azure Data Factory中向Web Activity传递AVRO文件内容?

在Azure Data Factory中正确传递AVRO内容到Web Activity的方法

问题场景

已通过Lookup Activity读取AVRO文件,并用Set Variable Activity将output.value存入变量variable1,变量结构如下:

{
    "name": "variable1",
    "value": [
        {
            "Type": "Email",
            "Value": "exmaple1@gmail.com",
            "Timestamp": "2023-12-20 15:54:20.SSS",
            "IsAllowed": true
        }
    ]
}

需要将variable1的数组内容传递给Web Activity,构造如下格式的请求体:

{
   "Key":"MarketingPreferences",
   "Value":[
      {
         "Type":"Email",
         "Value":"exmaple1@gmail.com",
         "Timestamp":"2023-12-20 15:54:20.SSS",
         "IsAllowed":true
      }
   ]
}

原写法问题

之前尝试的请求体写法会导致Value字段被序列化为字符串而非数组,不符合目标格式要求:

{
    "Key": "MarketingPreferences",
    "Value": @{variables('variable1')}
}

解决方案

方法1:使用表达式模式构造请求体

  1. 在Web Activity的Request body设置中,切换模式为Expression(而非默认的JSON)
  2. 输入以下表达式,直接构造符合要求的JSON对象:
@{
    {
        "Key": "MarketingPreferences",
        "Value": variables('variable1')
    }
}

方法2:通过字符串拼接生成JSON

如果需要保持JSON模式,可使用concat和json函数转换:

@json(concat('{"Key":"MarketingPreferences","Value":', string(variables('variable1')), '}'))

额外验证

确保variable1的类型为Array:在Set Variable Activity中,确认赋值的是@activity('LookupActivityName').output.value,而非经过字符串转换的内容。若变量类型为String,需先转换为Array:

@json(variables('variable1'))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 20:51:03