Powershell 调用RestMethod将哈希表转换为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

我试图向一个API发送一个请求,该API要求主体是json数组。如何将参数哈希表转换为json数组

$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我没有编造这个例子,我在这个例子中写的是他们网站上的一个字一个字的例子,当我在他们的“现在就试试”部分使用这个例子时,它是有效的。