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

ADF/Web activity变量输出异常问题求助

解决Azure Data Factory中Web Activity传递变量时的“解析值后遇到意外字符”错误

这个错误本质是Web Activity的请求体JSON格式不合法,大概率是变量嵌入时破坏了JSON结构,或者变量值本身的格式不符合JSON要求,以下是针对性的解决步骤:

1. 先确认Set Variable的赋值是否正确

Lookup活动返回的计数结果需要正确提取,确保Set Variable的表达式没有问题:

  • 如果变量类型是整数,直接用:@{activity('Lookup表A').output.firstRow['COUNT(*)']}
  • 如果变量类型是字符串,要转成字符串类型:@{string(activity('Lookup表A').output.firstRow['COUNT(*)'])}

2. 保证Web Activity的请求体是合法JSON

这是最容易出错的地方,常见问题和修正方式:

错误写法示例(破坏JSON结构)

直接拼接字符串时如果变量是整数,虽然表面看没问题,但如果表达式语法错误(比如漏写@{}包裹),或者变量值包含特殊字符,就会导致JSON解析失败:

{"message": "表A行数:@{variables('CountA')},表B行数:@{variables('CountB')},两表行数相等"}

正确写法

用ADF的concat函数统一拼接字符串,确保最终生成的是合法的JSON值:

{
    "message": "@{concat('表A行数:', variables('CountA'), ',表B行数:', variables('CountB'), ',两表行数相等')}"
}

或者根据变量类型调整嵌入方式:

  • 如果变量是整数,直接作为JSON数字嵌入:
{
    "countA": @{variables('CountA')},
    "countB": @{variables('CountB')},
    "message": "两表行数相等"
}
  • 如果变量是字符串,必须用双引号包裹:
{
    "countA": "@{variables('CountA')}",
    "countB": "@{variables('CountB')}",
    "message": "两表行数不相等"
}

3. 调试验证技巧

  • 先给Set Variable活动做Debug,查看变量的实际值和类型,确认没有空值或异常字符
  • 先写静态JSON内容测试Web Activity是否能正常发送,再逐步替换成变量表达式
  • 用表达式框旁边的验证按钮(闪电图标)检查表达式是否合法,避免语法错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 16:20:23