用于为Invoke rest方法提供提要的动态Json变量
如果对象创建代码是单行的,我就能够传递动态json对象用于为Invoke rest方法提供提要的动态Json变量,json,powershell,azure,Json,Powershell,Azure,如果对象创建代码是单行的,我就能够传递动态json对象 Invoke-RestMethod -ContentType "application/json" -Method Post -Body '{ "name" : "azurefunctionapp2email", "appname": "Applicationnamehere", "requestedBy" : "requestedby", "reqdate" : "requestdate", "status" : "Successfull
Invoke-RestMethod -ContentType "application/json" -Method Post -Body '{ "name" : "azurefunctionapp2email", "appname": "Applicationnamehere", "requestedBy" : "requestedby", "reqdate" : "requestdate", "status" : "Successfully Deployed", "AppsCount" : "2" }' `
-Uri “https://implementurihere"
由于现实世界中的动态JSON对象需要更长,我用新行单独创建,并在上面引用,如下所示。但是新行移位会导致json中断。我尝试通过管道连接到converttojson
函数,然后发现输出中包含了“`\r\n”:
$body = '{ "name" : "azurefunctionapp2email", `
"appname": "Applicationnamehere", `
"requestedBy" : "requestedby", `
"reqdate" : "requestdate",
"status" : "Successfully Deployed",
"AppsCount" : "2" }' `
Invoke-RestMethod -ContentType "application/json" -Method Post -Body $body `
-Uri “https://implementurihere"
注意:如果$body
为单行,则上述操作有效
在创建动态json、长文件和提要的情况下如何处理?您的示例不起作用,因为最后一行包含一个反勾号,您必须忽略它
您可以使用来定义JSON,这样就不需要用倒勾分隔每一行:
$body =
@'
{ "name" : "azurefunctionapp2email",
"appname": "Applicationnamehere",
"requestedBy" : "requestedby",
"reqdate" : "requestdate",
"status" : "Successfully Deployed",
"AppsCount" : "2" }
'@
您还可以考虑使用PosithHead哈希表来定义您的对象,该对象允许使用变量而不需要格式字符串:
$bodyObject = @{
name = 'azurefunctionapp2email'
appname = 'Applicationnamehere'
requestedBy = 'requestedby'
reqdate = 'requestdate'
status = 'Successfully Deployed'
AppsCount = '2'
}
$bodyObject | ConvertTo-Json
是的,非常感谢。