Powershell 调用RestMethod将哈希表转换为json数组
我试图向一个API发送一个请求,该API要求主体是json数组。如何将参数哈希表转换为json数组Powershell 调用RestMethod将哈希表转换为json数组,powershell,Powershell,我试图向一个API发送一个请求,该API要求主体是json数组。如何将参数哈希表转换为json数组 $parameters =@{ "sn" = "CND3210W9M" "pn" = "D5H49AV" } $post = Invoke-RestMethod -Uri "https://blah.com/queries" -Method Post -Body ($parameters | ConvertTo
$parameters =@{
"sn" = "CND3210W9M"
"pn" = "D5H49AV"
}
$post = Invoke-RestMethod -Uri "https://blah.com/queries" -Method Post -Body ($parameters | ConvertTo-Json) -Headers $headers -ContentType 'application/json'
API示例将下面的数组显示为有效的主体
[
{
"sn": "CND3210W9M",
"pn": "D5H49AV"
}
]
如果您的请求需要有效的json,则可能如下所示:
$body = @{
parameters =
@( # Make this an array
@{ # of hashtables
"sn" = "CND3210W9M"
"pn" = "D5H49AV"
} ) }
$body | ConvertTo-Json
输出:
{
"parameters": [
{
"pn": "D5H49AV",
"sn": "CND3210W9M"
}
]
}
@Eris,我尝试使用您的代码,但它返回了API不喜欢的额外{} 最后,我只使用了一个here字符串,继续前进。它不是很优雅,但无法让API以其他方式正确响应
$body = @"
[
{
"sn": "$sn",
"pn": "$pn"
}
]
"@
怎么样
$parameters=@()$添加(@{“sn”=“CND3210W9M”“pn”=“D5H49AV”})代码>?预期的请求正文不是有效的json。json中的每一项都有一个标识符。@marainesparnisari该代码是否适用于您,我只是尝试了一下,得到了一些errors@Eris我没有编造这个例子,我在这个例子中写的是他们网站上的一个字一个字的例子,当我在他们的“现在就试试”部分使用这个例子时,它是有效的。