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

Azure Data Factory调用Key Vault API传动态变量报换行错误求解

ADF调用Key Vault设置密钥接口动态变量报换行错误修复方案

报错根因

触发格式错误的核心原因是请求体JSON构造不合法:

  • 动态变量未包裹字符串双引号直接裸写在键值对中,不符合JSON基础语法
  • 若push_refresh_token变量携带未转义的换行符、双引号等特殊字符,直接拼接会打断JSON结构,触发解析报错

修复方案

方案1:使用@json()函数自动构造请求体(最推荐,稳定性最高)

不需要手动拼接JSON字符串,直接在REST活动的请求体动态内容输入框中写以下表达式,自动完成结构校验和基础转义,从根源避免格式问题:

@json(concat('{"values": "', replace(variables('push_refresh_token'), '"', '\\"'), '"}'))

如果你的push_refresh_token本身带换行符,先新增一个Set Variable活动清洗原始值,把换行符做转义处理,清洗表达式:

@replace(replace(variables('push_refresh_token'), '\r', ''), '\n', '\\n')

把清洗后的值替换掉上面表达式里的variables('push_refresh_token')即可。


方案2:静态JSON框架嵌入动态插值(适配可视化编辑习惯)

如果习惯在请求体编辑器中先写好静态JSON结构再嵌入动态内容,按两步调整:

  1. 新增Set Variable活动,对原始token做全量特殊字符转义,输出为处理后的新变量:
@replace(replace(replace(variables('push_refresh_token'), '\r', ''), '\n', '\\n'), '"', '\\"')
  1. 在REST活动请求体中,使用ADF内置的@{}插值语法,把处理后的变量嵌入带双引号的值位置,正确写法:
{
  "values": "@{variables('processed_refresh_token')}"
}

避坑说明

  • 之前的错误写法"values": @variables('push_refresh_token')是把变量值直接裸放在JSON结构中,只要值为字符串类型就必然触发格式错误,所有字符串类型的动态值都必须放在双引号内
  • 所有外部传入、动态生成的变量值在拼接JSON前都要做特殊字符转义,不要直接拼接原始值,避免值携带的特殊字符破坏结构

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 20:21:29