【发布时间】:2021-02-10 05:39:46
【问题描述】:
这是我的代码:
$token = 'xxxxxxxxxxxxx'
$uri = "https://api.sendgrid.com/v3/teammates?limit=500&offset=0"
$subuser = Read-Host "Enter the Subuser value"
$headers1 = @{"Authorization" = "Bearer $token"
"on-behalf-of" = "$subuser"
}
Do {
Write-Host "Do you know the teammates username? Y/N" -ForegroundColor Yellow
$response = Read-Host
}
While ($response.ToLower() -notin "y", "n")
Switch ($response.ToLower())
{
"y" {
$username = Read-host "Enter Username"
$apiurl = $uri + $username
$data = Invoke-RestMethod -Method Get -Uri $apiurl -headers $headers1
break
}
"n" {
$uri = $uri
$data = Invoke-RestMethod -method GET -uri $uri -headers $headers1
break
}
}
$data | convertto-json
所以$results的值为:
{
"result": [
{
"username": "ben.michael",
"email": "ben.michael@company.com",
"first_name": "Ben",
"last_name": "Michael",
"address": "",
"address2": "",
"city": "",
"state": "",
"zip": "",
"country": "",
"company": "",
"website": "",
"phone": "",
"is_admin": false,
"is_sso": false,
"user_type": "teammate"
},
{
"username": "brandon.nosk",
"email": "brandon.nosk@company.com",
"first_name": "Brandon",
"last_name": "Nosk",
"address": "",
"address2": "",
"city": "",
"state": "",
"zip": "",
"country": "",
"company": "",
"website": "",
"phone": "",
"is_admin": false,
"is_sso": false,
"user_type": "teammate"
},
我需要做的是能够 Format-Table 用户名、电子邮件 但由于这是一个 PSCustomObject,我无法找出正确的方法。如果我删除 ConvertTo-JSON 那么 $results 的值是:
result
------
{@{username=ben.michael; email=ben.michael@comapny.com; first_name=Ben; last_name=Michael; address=; address2=; ci..
我认为这是一个哈希表,但我并不肯定。我正在拼命寻求帮助来解析用户名和电子邮件值...
【问题讨论】:
-
当您输入
$results时,输出会显示$results的值是一个对象,其中包含一个名为result的字段。所以,要使用它,请使用$results.result | FT -Property @('username', 'email')
标签: powershell api web scripting