遍历 Invoke-WebRequest JSON 结果
Iterating through Invoke-WebRequest JSON result
我正在尝试通过 powershell 迭代 webrequest 调用的结果
$response = Invoke-WebRequest -URI $apiUri -Method Get -UseBasicParsing
$response
结果:
StatusCode : 200
StatusDescription : OK
Content : {"tenants":[{"name":"default","active":true},{"name":"tenant1","active":true}]}
RawContent : HTTP/1.1 200 OK
...
使用 ConvertFromJson
$parsed = $response.Content | ConvertFrom-Json
$parsed
结果:
tenants : {@{name=default; active=True}, @{name=tenant1; active=True}}
现在,我想像这样列出所有“名称”值
Name
--------
default
tenant1
我尝试使用此脚本对其进行迭代,但无法获得结果:
$parsed | Select-Object -Property name | ForEach-Object {
Write-Host $_.name
}
下面的代码将输出 table 个名称:
$json = '{"tenants":[{"name":"default","active":true},{"name":"tenant1","active":true}]}'
$data = $json | ConvertFrom-Json
$data.tenants | ft name
#name
#----
#default
#tenant1
如果您想将它们作为数组捕获到变量中,您可以使用名为 Member Enumeration:
的功能
$names = $data.tenants.name;
$names
#default
#tenant1
我正在尝试通过 powershell 迭代 webrequest 调用的结果
$response = Invoke-WebRequest -URI $apiUri -Method Get -UseBasicParsing
$response
结果:
StatusCode : 200
StatusDescription : OK
Content : {"tenants":[{"name":"default","active":true},{"name":"tenant1","active":true}]}
RawContent : HTTP/1.1 200 OK
...
使用 ConvertFromJson
$parsed = $response.Content | ConvertFrom-Json
$parsed
结果:
tenants : {@{name=default; active=True}, @{name=tenant1; active=True}}
现在,我想像这样列出所有“名称”值
Name
--------
default
tenant1
我尝试使用此脚本对其进行迭代,但无法获得结果:
$parsed | Select-Object -Property name | ForEach-Object {
Write-Host $_.name
}
下面的代码将输出 table 个名称:
$json = '{"tenants":[{"name":"default","active":true},{"name":"tenant1","active":true}]}'
$data = $json | ConvertFrom-Json
$data.tenants | ft name
#name
#----
#default
#tenant1
如果您想将它们作为数组捕获到变量中,您可以使用名为 Member Enumeration:
的功能$names = $data.tenants.name;
$names
#default
#tenant1