Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于为Invoke rest方法提供提要的动态Json变量_Json_Powershell_Azure - Fatal编程技术网

用于为Invoke rest方法提供提要的动态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

如果对象创建代码是单行的,我就能够传递动态json对象

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

是的,非常感谢。