首页 > 解决方案 > 需要帮助使用 PowerShell 解析 JSON

问题描述

我有下面的 JSON 块,我正在尝试用 PowerShell 解析。JSON 的用途是表示在 Azure 应用注册时应授予 AD 组的权限。一个应用程序将分配有多个组,每个组将具有一组唯一的角色(权限)。完整的 JSON 文件有几个这样的application块。

基本上,我希望能够使用 PowerShell 执行的操作是application查询 Azure AD 以获取应用程序资源,然后修改资源以使用New-AzureADGroupAppRoleAssignment.

传统的想法是我需要一个循环嵌套在一个循环内,该循环嵌套在一个循环内,第一个循环抓取application块,然后第二个循环抓取groupname块,然后第三个循环抓取该组的数组roles

 "application": 
  [
    {
      "groupname": "adgroup1",
      "roles": [ 
        "Permission1",
        "Permission2",
        "Permission3",
        "Permission4",
        "Permission5",    
        "Permission6" 
      ]
    },
    {
      "groupname": "adgroup2",
      "roles": [ 
        "Permission1",
        "Permission2",
        "Permission4",
        "Permission5",    
        "Permission6" 
      ]
    }

标签: jsonpowershell

解决方案


这样的事情应该让你开始

$json = SomethingThatGetsJson | ConvertFrom-Json
$json.application | % {
   $data = $_
   Write-Host $data.groupname
   $data.roles | % {
      $role = $_
      Write-Host $role
   }
}

%ForEach-Object如果您想获得更多详细信息的简写。$_是枚举的当前迭代中的元素值。


推荐阅读