我的目标是使用AzureDevops管道变量将JSON对象从一台计算机传递到另一台计算机。 该过程以一个Powershell脚本开始,该脚本获取JSON对象并将其压缩为:
$json=[{"test":"foo","bar":"hello}]
。
请注意,它将始终是一个数组。 现在,我将azure变量设置为:
Write-Host "##vso[task.setvariable variable=Json]$json"
现在该变量已在发布管道BUT中初始化,双引号不会转义。
这意味着当我尝试在下一个脚本中获取$(Json)
时,它当然会由于无效字符而失败。我的问题是,如何避免使用双引号?我试过在字符串的开头和结尾添加单引号,但是它不起作用。谢谢!
答案 0 :(得分:1)
您可以尝试使用以下格式的JSON文件:
$json = @"
[
{
"op": "add",
"path": "/fields/System.Title",
"value": "Bug22"
},
{
"op": "add",
"path": "/fields/Microsoft.VSTS.Common.Severity",
"value": "3 - Medium"
}
]
"@ | ConvertTo-Json -Compress
答案 1 :(得分:1)
在使用管道变量之前,您是否尝试过将其包装在此处?
$json = @"
$(Json)
"@