You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Azure Key Vault返回的JSON权限数组中移除Null键?

处理Azure Key Vault Access Policies中权限字段的Null值

用jq工具处理(推荐方案)

jq是专门处理JSON的工具,直接在拉取命令后加管道就能完成需求,两种处理方式任选:

移除值为Null的权限字段

执行这条命令,会自动删掉permissions里值为null的键:

policies=$(az keyvault show --name $KeyVaultName --resource-group $ResourceGroupName --query "properties.accessPolicies" | jq 'map(.permissions |= with_entries(select(.value != null)))')

核心逻辑:遍历每个策略对象,对permissions字段过滤掉值为null的键值对。

将Null替换为空数组

如果想保留所有权限字段,只是把null换成空数组,用这条命令:

policies=$(az keyvault show --name $KeyVaultName --resource-group $ResourceGroupName --query "properties.accessPolicies" | jq 'map(.permissions |= with_entries(.value //= []))')

核心逻辑:对permissions里的每个字段,若值为null则替换成空数组[]。

用Azure CLI内置JMESPath查询处理

如果不想额外用jq,也可以直接用Azure CLI的--query参数构造查询,把null替换为空数组:

policies=$(az keyvault show --name $KeyVaultName --resource-group $ResourceGroupName --query "properties.accessPolicies[].{applicationId: applicationId, objectId: objectId, permissions: {certificates: permissions.certificates || [], keys: permissions.keys || [], secrets: permissions.secrets || [], storage: permissions.storage || []}, tenantId: tenantId}")

注意:这种方式需要手动列出所有权限子字段(certificates、keys、secrets、storage),如果后续Azure新增权限类型,得手动更新这条命令里的字段。

内容的提问来源于stack exchange,提问作者Josh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 09:22:21