Как работать в Powershell с JSON


18 июля 2019


Как работать в Powershell с JSON

Для работы в Powershell с JSON есть несколько командлетов. Посмотреть их можно по команде:

Get-Command -Noun *JSON*

Эти команды доступны с версии PS 5.0. Проверить версию можно так:

host
#или
$PSVersionTable

Для работы с JSON я создал файл по этой ссылке, содержащий эти данные:

{"employee":{"name":"sonoo","salary":[56000, 30000],"married":true}}

Для того что бы получить их, я должен использовать командлет Powershell Invoke-WebRequest (аналог wget). Результат будет помещен в переменную response:

$response = Invoke-WebRequest -Uri "https://fixmypc.ru/json.html"

Т.к. мне нужен только контент страницы, а не весь файл, я должен узнать нужное свойство. Делается это так:

$response | Get-Member

Powershell Invoke-WebRequest json

Получить это свойство можно так:

$response.Content

 

 

Преобразование с JSON в Powershell ConvertFrom-Json

Для того что бы работать с JSON в Powershell, на примере предыдущих данных, нужно использовать следующей командлет:

ConvertFrom-Json -InputObject $response.Content

Результат этой команды будет объектом и имеет свои свойства и методы. Что бы их увидеть выполните следующее

$json = ConvertFrom-Json -InputObject $response.Content
$json | Get-Member

Powershell JSON

Т.е. мы видим свойство employee и можем его вызвать:

$json.employee

Powershell Json property

Если я хочу получить только "name":

$json.employee.Name

Если мне нужно получить первое значение в salary:

$json.employee.Salary[0]

Мы можем получить все данные с JSON и другим путем:

ConvertFrom-Json -InputObject $response.Content | SELECT -ExpandProperty Employee

 

Преобразование в JSON в Powershell ConvertTo-Json

Если мы хотим преобразовать данные из объекта Powershell в формат JSON, на примере сервисов, нужно сделать следующее:

ConvertTo-Json -InputObject (Get-Service)

Данные будут храниться в типе string.

...

Теги: #powershell


Популярные тэги
О блоге
Этот блог представляет собой конспекты выученного материала, преобретенного опыта и лучшие практики в системном администрировании и программировании.