我有一个从 Invoke-RestMethod 的 JSON 输出创建的 psobject。我的意图是更改一个值,转换回 JSON,然后使用另一个 Invoke-RestMethod 添加回应用程序 REST API。过去我曾多次使用相同的 REST API 完成此操作,因此我不确定为什么此 API 不起作用。
psobject$restOut
看起来像这样:
id: 123
limit: @{limitMb=0; limitPercent=0}
如果我想要的新 id 尚未设置,则下一个代码块会更改 id
$newId = 456
if($restOut.id -ne $newId){
$restOut.id = $newId
$inputJson = $restOut | ConvertTo-Json -Depth 2
Invoke-RestMethod -Uri $restURl -Method PUT -Body $inputJson
}
我期待$inputJson
看起来像这样(并且 psobject$restOut
确实符合预期):
{
"id": "456",
"limit": {
"limitMb": 0,
"limitPercent": 0
}
}
但我实际上得到的是:
{
"id": {
"value": "456",
"id": "456"
},
"limit": {
"limitMb": 0,
"limitPercent": 0
}
}
如前所述,我已经在针对相同软件 API 的其他脚本中多次执行过这种精确操作,但这次我对这种行为感到茫然。任何帮助表示赞赏。谢谢!