Powershell转换为JSON返回“;嵌套的;对象

Powershell转换为JSON返回“;嵌套的;对象,json,node.js,powershell,Json,Node.js,Powershell,我正在尝试向我的服务器发出POST请求。在我决定将对象转换为JSON之前,一切都很好。这是我的密码: $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

我正在尝试向我的服务器发出POST请求。在我决定将对象转换为JSON之前,一切都很好。这是我的密码:

$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";
}

Invoke-WebRequest -Uri http://localhost:3000/api/add/user -Method POST -Body (ConvertTo-Json $postParams -Compress)
而不是返回常规JSON对象,如:

{
"Login": "JonSnow66"
...
}
它返回:

{{
    "Login":  "JonSnow66",
    "BirthDate":  "1572 2 16",
    "Desc":  "I know nothing",
    "Name":  "Jon Snow",
    "Type":  "Admin",
    "Password":  "LetItSnow",
    "Img":  "/9j/4<BASE64>/Z\r\n",
    "Email":  "Jon.Snow@wall.com"
}: ""}
{{
“登录”:“Jonsow66”,
“生日”:“1572 2 16”,
“描述”:“我什么都不知道”,
“姓名”:“乔恩·斯诺”,
“类型”:“管理员”,
“密码”:“LetItSnow”,
“Img”:“/9j/4/Z\r\n”,
“电子邮件”:“乔恩。Snow@wall.com"
}: ""}

我只是一个powershell初学者

我认为您需要将
Invoke WebRequest
上的ContentType指定为“application/json”。如果您没有指定内容类型并且正在执行Post,那么我认为cmdlet假定您在默认情况下提交表单,这可能解释了您在结果中看到的额外的
{}
字符

以下是修改后的代码:

Invoke-WebRequest -Uri 'http://localhost:3000/api/add/user' -Method POST  -ContentType 'application/json' -Body (ConvertTo-Json $postParams -Compress)

我正是在编写Python脚本的过程中,谢谢。