Получение строкового значения базового типа system.object в Powershell - PullRequest
0 голосов
/ 25 марта 2019

У меня есть результат запроса http post, и я сохраняю содержимое в переменной.

$response = Invoke-WebRequest -Uri "https://xxxxxx" -Method Post -Body $Body -Headers $header 
$Content =$response.Content

Содержимое выглядит так:

{"id":"246584121546545124545"}

Теперь я хочу толькозначение идентификатора.я попытался использовать объект выбора и параметр свойства, чтобы получить значение идентификатора.Но он не работает, так как содержимое является строкой.Выглядит просто, но не смог найти способ получить значение.

PS C:\Scripts> $Content.GetType()

IsPublic IsSerial Name                                     BaseType                                                                                                                           
-------- -------- ----                                     --------                                                                                                                           
True     True     String                                   System.Object  

Ответы [ 2 ]

1 голос
/ 25 марта 2019

Вы также можете использовать Invoke-RestMethod.

$response = Invoke-RestMethod -Uri "https://xxxxxx" -Method Post -Body $Body -Headers $header 
$response.id

Invoke-RestMethod

Документы Microsoft

Командлет Invoke-RestMethod отправляет запросы HTTP и HTTPS веб-службам представления состояния представлений (REST), которые возвращают богато структурированные данные.
Windows PowerShell форматирует ответ в соответствии с типом данных.
Для JavaScript Object Notation (JSON) или XML Windows PowerShell преобразует (или десериализует) содержимое в объекты.

1 голос
/ 25 марта 2019

Попробуйте разобрать JSON с пользовательским объектом PS следующим образом, а затем получить доступ к свойству id:

> $x = ConvertFrom-Json -InputObject $Content
> $x.id
...