Теперь, когда Powershell - это кросс-платформа, я подумал, что я брошу туда, потому что считаю это довольно интуитивным и чрезвычайно простым.
curl -s 'https://api.github.com/users/lambda' | ConvertFrom-Json
ConvertFrom-Json преобразует JSON в пользовательский объект Powershell, поэтому вы можете легко работать со свойствами с этой точки вперед. Если вы хотели бы только свойство id, вы бы просто сделали это:
curl -s 'https://api.github.com/users/lambda' | ConvertFrom-Json | select -ExpandProperty id
Если вы хотите вызвать все это из Bash, тогда вам придется называть его как это:
powershell 'curl -s "https://api.github.com/users/lambda" | ConvertFrom-Json'
Конечно, есть чистый способ Powershell сделать это без завитки, что было бы:
Invoke-WebRequest 'https://api.github.com/users/lambda' | select -ExpandProperty Content | ConvertFrom-Json
Наконец, есть также «ConvertTo-Json», который преобразует пользовательский объект для JSON так же легко. Вот пример:
(New-Object PsObject -Property @{ Name = "Tester"; SomeList = @('one','two','three')}) | ConvertTo-Json
Что создавало бы хороший JSON вот так:
{
"Name": "Tester",
"SomeList": [
"one",
"two",
"three"
]
}
По общему признанию, использование оболочки Windows в Unix несколько кощунственный, но Powershell действительно хорош в некоторых вещах, и парсинг JSON и XML - это пара из них. Это страница GitHub для кросс-платформенной версии https://github.com/PowerShell/PowerShell