为 Powershell Post 正确格式化 JSON? (哈希文字中的键后缺少“=”运算符。)
Correctly format JSON for Powershell Post? (Missing '=' operator after key in hash literal.)
我正在尝试使用 Powershell 执行一些“POST”请求。但是,我似乎无法正确设置 JSON 的格式。我该如何实现?
>> $JSON=@{name:"TestName"}
>> Invoke-WebRequest -Uri http://localhost:7071/api/HttpTrigger1 -Method POST -Body $JSON
>> $response = Invoke-WebRequest -Uri "http://localhost:7071/api/HttpTrigger1" -Method Post -Body $JSON -ContentType "application/json"
ParserError:
Line |
1 | $JSON=@{name:"TestName"}
| ~
| Missing '=' operator after key in hash literal.
因此,您可以通过两种方式执行此操作:
第一个,正如圣地亚哥所建议的,是
$json = '{name:"TestName"}'
$response = Invoke-WebRequest -Uri "http://localhost:7071/api/HttpTrigger1" `
-Method Post -Body $json -ContentType "application/json"
第二种(大致)使用您所使用的语法,是
#create a Powershell object (note the use of '=' instead of ':' for assignment)
#(such a simple example is not an improvement over the example above)
$json = @{ name = "TestName" } | ConvertTo-JSON
$response = Invoke-WebRequest -Uri "http://localhost:7071/api/HttpTrigger1" `
-Method Post -Body $json -ContentType "application/json"
第一种方法当然更干净、更直接。当请求的源数据是操作 Powershell 对象的结果,并且您希望将它们转换为在 Web 请求中使用时,第二个很有用。
我正在尝试使用 Powershell 执行一些“POST”请求。但是,我似乎无法正确设置 JSON 的格式。我该如何实现?
>> $JSON=@{name:"TestName"}
>> Invoke-WebRequest -Uri http://localhost:7071/api/HttpTrigger1 -Method POST -Body $JSON
>> $response = Invoke-WebRequest -Uri "http://localhost:7071/api/HttpTrigger1" -Method Post -Body $JSON -ContentType "application/json"
ParserError:
Line |
1 | $JSON=@{name:"TestName"}
| ~
| Missing '=' operator after key in hash literal.
因此,您可以通过两种方式执行此操作:
第一个,正如圣地亚哥所建议的,是
$json = '{name:"TestName"}'
$response = Invoke-WebRequest -Uri "http://localhost:7071/api/HttpTrigger1" `
-Method Post -Body $json -ContentType "application/json"
第二种(大致)使用您所使用的语法,是
#create a Powershell object (note the use of '=' instead of ':' for assignment)
#(such a simple example is not an improvement over the example above)
$json = @{ name = "TestName" } | ConvertTo-JSON
$response = Invoke-WebRequest -Uri "http://localhost:7071/api/HttpTrigger1" `
-Method Post -Body $json -ContentType "application/json"
第一种方法当然更干净、更直接。当请求的源数据是操作 Powershell 对象的结果,并且您希望将它们转换为在 Web 请求中使用时,第二个很有用。