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

PowerShell中ConvertTo-JSON返回嵌套对象的POST请求问题

解决PowerShell POST请求JSON转换后的嵌套对象异常问题

嘿,这问题我之前踩过一模一样的坑!你遇到的嵌套对象异常主要是PowerShell处理JSON和Web请求时的两个常见小坑导致的,咱们一步步来搞定:

问题根源拆解

  1. 缺失JSON请求头:Invoke-WebRequest默认不会自动设置Content-Type: application/json,服务器收到请求后可能把你的JSON字符串当成普通表单数据解析,直接导致结构识别混乱。
  2. ConvertTo-Json默认深度不足:PowerShell的ConvertTo-Json默认只处理2层深度的对象,哪怕你的参数里只是Img这种带换行的文本,都可能被意外转成嵌套的@{...}结构,服务器自然没法正确解析。

修正后的完整代码

把这两个坑补上,代码就能正常工作了:

$postParams = @{ 
    Login = "JonSnow66"
    Password = "LetItSnow"
    Email = "Jon.Snow@wall.com"
    Name = "Jon Snow"
    Desc = "I know nothing"
    BirthDate = "1572 2 16"
    Img = Get-Content -Path ./PH_img.txt | Out-String
    Type = "Admin"
}

# 关键修改:添加JSON请求头,给ConvertTo-Json设置足够大的深度参数
Invoke-WebRequest -Uri http://localhost:3000/api/add/user `
                  -Method POST `
                  -ContentType "application/json" `
                  -Body (ConvertTo-Json $postParams -Compress -Depth 10)

额外验证小技巧

你可以先单独执行ConvertTo-Json $postParams -Depth 10查看输出的JSON结构,确认没有出现@{Value=...}这类奇怪的嵌套对象,再发送请求,这样能提前排查转换环节的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:13:46