Json Powershell Yammer REST API POST语法问题
我有一个关于使用Invoke rest方法传递变量的正确语法的新手问题。代码如下:Json Powershell Yammer REST API POST语法问题,json,rest,powershell,yammer,Json,Rest,Powershell,Yammer,我有一个关于使用Invoke rest方法传递变量的正确语法的新手问题。代码如下: $Payloadjson = '{ "body": $tickets_stats, "group_id" : "7837105", "replied_to_id": $replied_to_id }' # echo $Payloadjson Invoke-RestMethod -Method Post -Uri $uri_post -Header $Hea
$Payloadjson = '{
"body": $tickets_stats,
"group_id" : "7837105",
"replied_to_id": $replied_to_id
}'
# echo $Payloadjson
Invoke-RestMethod -Method Post -Uri $uri_post -Header $Headers -Body $Payloadjson
问题是,我无法从$ticket_stats和$responsed_to_id中获取值。我认为这是因为引号和花括号
我曾尝试在括号前加双引号,在其余部分加单引号:我有变量值,但调用rest方法时出错
如果您对如何传递变量有任何想法,将不胜感激
提前感谢:)您可以将
哈希表与cmdlet结合使用:
$Payloadjson的输出:
{
"body": "ticket",
"replied_to_id": 123,
"group_id": "7837105"
}
您还可以使用格式字符串(但我将使用哈希表
):
谢谢Jisaak,看起来它在工作
同时,我使用了另一个技巧,但您的解决方案更优雅:
$Payloadjson = '{
"body": *$tickets_stats*,
"group_id" : 4783115,
"replied_to_id": *$replied_to_id*
}'
# Formatting Payload
$Payloadjson = $Payloadjson -replace '[*]',"'"
#Get value from variables
$Payloadjson = $ExecutionContext.InvokeCommand.ExpandString($Payloadjson)
$Payloadjson = $Payloadjson -replace "'",'"'
$Payloadjson = '{
"body": {0},
"group_id" : "7837105",
"replied_to_id": {1}
}' -f $tickets_stats, $replied_to_id
$Payloadjson = '{
"body": *$tickets_stats*,
"group_id" : 4783115,
"replied_to_id": *$replied_to_id*
}'
# Formatting Payload
$Payloadjson = $Payloadjson -replace '[*]',"'"
#Get value from variables
$Payloadjson = $ExecutionContext.InvokeCommand.ExpandString($Payloadjson)
$Payloadjson = $Payloadjson -replace "'",'"'