ConverTo- Json Изменение предполагаемого выхода - PullRequest
0 голосов
/ 05 марта 2020

У меня есть 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, и я просто в растерянности с поведением на этот раз. Любая помощь приветствуется. Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...