У меня есть psobject, который создается из вывода JSON Invoke-RestMethod. Мое намерение состоит в том, чтобы изменить одно значение, преобразовать обратно в JSON, а затем добавить обратно в API REST приложения с другим Invoke-RestMethod. Я делал это несколько раз в прошлом с одним и тем же API REST, поэтому я не уверен, почему этот не работает.
psobject $restOut
выглядит так:
id: 123
limit: @{limitMb=0; limitPercent=0}
Следующий блок кода меняет идентификатор, если новый идентификатор, который я хочу, еще не установлен
$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, и я просто в растерянности с поведением на этот раз. Любая помощь приветствуется. Спасибо!