json - 需要帮助使用 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"
]
}
解决方案
这样的事情应该让你开始
$json = SomethingThatGetsJson | ConvertFrom-Json
$json.application | % {
$data = $_
Write-Host $data.groupname
$data.roles | % {
$role = $_
Write-Host $role
}
}
%
是ForEach-Object
如果您想获得更多详细信息的简写。$_
是枚举的当前迭代中的元素值。