如何访问 Restful API 返回的字段值

How do I access the value of a field returned by a Restful API

我有一个非常基本的要求来调用 RESTful API。我目前在使用 PowerShell 版本 4 的 Windows 2012 R2 服务器上。

这是我的代码:

$logon = @{
    username = 'blah'
    password='blah'
}

$body = $logon | ConvertTo-Json 

$URI = 'https://URL/Logon'

Invoke-WebRequest -URI $URI -Method POST -Body $body -ContentType 'application/json' -Verbose 

我得到以下结果:

{"LogonResult":"blahblahblah"}

如何仅提取登录令牌以作为变量重复使用?我已经在命令的开头放置了一个变量:

   $token =  (Invoke-WebRequest -URI $URI -Method POST -Body $body -ContentType 'application/json' -Verbose).content 

这 returns 整个结果,而不仅仅是令牌。结果如何只获得令牌?

可以得到返回的LogonResult属性的值如下:

$token =  ((Invoke-WebRequest -URI $URI -Method POST -Body $body -ContentType 'application/json' -Verbose).content | ConvertFrom-JSON).LogonResult

或者您通过使用 Invoke-RestMethod 来简化它,因为这 returns 只是内容并自动将其转换为 PSObject:

$token =  (Invoke-RestMethod -URI $URI -Method POST -Body $body -ContentType 'application/json' -Verbose).LogonResult