You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PowerShell哈希表中正确设置数组类型的POST请求体值?

问题解决:PowerShell中构建嵌套JSON请求体的正确方式

你的PowerShell代码存在两个关键问题,导致请求失败:

错误1:meta字段取值错误

你把meta设为字符串"null",但Postman里的null是JSON空值,对应PowerShell里应该用$null,而非字符串类型的"null"。

错误2:未将哈希表正确序列化为JSON

直接将哈希表传给Invoke-WebRequest的-Body参数时,PowerShell不会自动将其转为标准JSON格式,必须手动用ConvertTo-Json处理,尤其是嵌套结构和数组的场景。

注:数组写法["space1", "space2"]在PowerShell里是正确的,问题不在数组本身。

修正后的完整代码

# 构建正确的嵌套哈希表
$Body = @{
    "meta" = $null 
    "data" = @{ 
         "type" = "spaces_schema"  
         "attributes" = @{
             "spaces" = @("space1", "space2")  # @()和[]在PowerShell里都可定义数组,效果一致
        }
    } 
}

# 将哈希表序列化为JSON,嵌套结构需指定足够的Depth(默认深度为2,此处需设为3)
$JsonBody = $Body | ConvertTo-Json -Depth 3

# 发送POST请求,必须指定Content-Type告知服务器请求体格式
Invoke-WebRequest -Uri 'https://{URL}' -Method Post -Body $JsonBody -ContentType 'application/json'

关键说明

  • -Depth 3:ConvertTo-Json默认序列化深度为2,你的请求体嵌套层级为3层(data -> attributes -> spaces),必须显式指定深度避免JSON结构被截断。
  • -ContentType 'application/json':必须添加该参数,否则服务器无法识别请求体为JSON格式,会导致解析失败。

内容的提问来源于stack exchange,提问作者PrefferedAcorn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 20:20:04