如何向Azure DevOps Run Pipeline传变量并解决JSON参数报错
错误根因
Azure DevOps 的「运行流水线(Run Pipeline)」任务中,Build parameters 字段强制要求输入标准JSON格式的对象数组,任何格式偏差(缺外层数组、引号不匹配、转义错误、变量引用方式不对)都会触发你看到的报错。
正确配置步骤
- 先做前置检查:打开你要触发的目标流水线,确认
RELEASE_RELEASENAME变量已经添加,并且勾选了「允许在排队时设置」选项,没有开这个权限的话即使参数格式对也会传值失败。 - 严格按照要求填写参数字段:
传固定值测试时,参考以下合法格式,不要加任何多余内容、换行、注释:
引用当前流水线的预定义变量[{"RELEASE_RELEASENAME":"test-release-v1.0.0"}]RELEASE_RELEASENAME时,必须把变量占位符放在双引号内部,正确写法:[{"RELEASE_RELEASENAME":"$(RELEASE_RELEASENAME)"}] - 排查高频格式错误:
- 不要漏写外层的
[]数组包裹,直接传{"RELEASE_RELEASENAME":"xxx"}单个对象一定会报错 - JSON 只支持双引号包裹键名和字符串值,不要用单引号
- 不要在最后一个键值对后面加多余的尾逗号
- 如果
RELEASE_RELEASENAME的取值本身包含双引号、反斜杠、换行符,需要先做JSON转义再传入,否则会破坏整体JSON结构 - 不要把变量占位符放在双引号外面,比如写成
[{"RELEASE_RELEASENAME":$(RELEASE_RELEASENAME)}]是错误的,变量替换后如果是字符串值会因为没有引号包裹变成非法JSON。
- 不要漏写外层的
校验方式
填完参数后,可以把你写的完整字符串复制到任意JSON校验工具验证,只要能正常解析为「包含1个JSON对象的数组」,且对象内包含目标键名,就符合格式要求。
内容的提问来源于stack exchange,提问作者misolo89
相关产品推荐
相关产品推荐

