cur*_*cab 5 api powershell json
我在使用 PowerShell 从 API 查询返回特定数据时遇到问题。我正在进行一个简单的 API 调用来获取用户,效果很好。
$Response = Invoke-RestMethod -uri $uri -Method GET -Headers $Headers
$Response
Run Code Online (Sandbox Code Playgroud)
该调用返回以下内容。
Total Sum Users Groups
----- ----- ----- ------
1 1 @{123456789=} @{Test Users=System.Object[]; Global Users=System.Object[]...
Run Code Online (Sandbox Code Playgroud)
$Response.Users 返回以下内容
123456789
---------
@{name= Test Case; fullname=Test Tester Case; office=Area 51;....
Run Code Online (Sandbox Code Playgroud)
问题是数字“123456789”是一个唯一标识符,会随着每个用户的变化而变化。为了从每个用户那里提取所需的数据,我需要能够解析并获取该数字。
这是 $Response.Users 的 JSON 输出
{
"123456789": {
"name": "Test Case",
"fullname": "Tester Test Case",
"office": "Area 51",
"country": "United States",
"groups": [
"Test Users",
"Global Users",
"Test OU"
]
}
}
Run Code Online (Sandbox Code Playgroud)
任何帮助是极大的赞赏!
谢谢
您可以使用默认的 powershell 属性访问note 属性的名称PsObject
并检索它的名称:
$json =
@'
{
"123456789": {
"name": "Test Case",
"fullname": "Tester Test Case",
"office": "Area 51",
"country": "United States",
"groups": [
"Test Users",
"Global Users",
"Test OU"
]
}
}
'@
$json | ConvertFrom-Json | ForEach-Object {$_.PsObject.Properties.Name}
Run Code Online (Sandbox Code Playgroud)
或者在你的情况下:
$Response.Users | ConvertFrom-Json | ForEach-Object {$_.PsObject.Properties.Name}
Run Code Online (Sandbox Code Playgroud)
应该可以解决问题;-)
归档时间: |
|
查看次数: |
4420 次 |
最近记录: |