我正在使用PowerShell调用GitHub API。结果是一个JSON数组,我使用ConvertFrom-Json cmdlet将其转换为PowerShell对象。这给了我一个PowerShell对象数组。然而,当我管这个直接选择 - 对象,我得到什么:Powershell调用Github API:ConvertFrom-Json管道之谜
Invoke-WebRequest -Uri "https://api.github.com/organizations?per_page=3" | ConvertFrom-Json | Select-Object -Property login, id
但是,如果我把ConvertFrom-JSON结果到一个变量,然后传递变量来选择对象时,它的工作原理:
$json = Invoke-WebRequest -Uri "https://api.github.com/organizations?per_page=3" | ConvertFrom-Json
$json | Select-Object -Property login, id
我很困惑。为什么单行版本不起作用?
我不确定为什么发生这种情况,但如果使用invoke-restmethod,则不需要使用convertfrom-json,因为它会自动将其转换为对象。 –
我不知道Invoke-RestMethod - 谢谢 - 这很好。尽管如此,我仍然需要临时变量。神秘仍然存在。 – Edward
这里的示例2建议您的代码应该正常工作https://msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft.powershell.utility/convertfrom-json –