使用PowerShell解析JSON数组

葫芦巴

我在使用PowerShell从API查询返回特定数据时遇到问题。我正在做一个简单的API调用来吸引一个运行良好的用户。

$Response = Invoke-RestMethod -uri $uri -Method GET -Headers $Headers
$Response

该调用返回以下内容。

Total Sum   Users         Groups
----- ----- -----         ------
    1     1 @{123456789=} @{Test Users=System.Object[]; Global Users=System.Object[]...

$ Response.Users返回以下内容

123456789
---------
@{name= Test Case; fullname=Test Tester Case; office=Area 51;....

问题是数字“ 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"     
      ]
    }
}

任何帮助是极大的赞赏!

谢谢

马丁·布兰德尔

您可以使用默认的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}

或您的情况:

$Response.Users | ConvertFrom-Json | ForEach-Object {$_.PsObject.Properties.Name}

应该做的把戏;-)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章