PowerShell如何根据输入id查询打印JSON转换后对象的对应内容
PowerShell 读取JSON中id对应内容的解决方案
问题根因
- 你使用
ConvertFrom-Json转换后的结果不是哈希表,是PSCustomObject类型,不能直接用[属性名]的索引方式读取属性,需要用.访问属性 - 原始JSON的所有id对应条目都存储在根节点的
ids数组属性中,你需要先访问$myvar.ids才能拿到所有数据集合
具体使用方法
1. 查询指定id的对应内容
比如查询id为121100的条目,执行以下命令:
# 过滤指定id的条目 $targetItem = $myvar.ids | Where-Object {$_.id -eq "121100"} # 查看对应标签 $targetItem.Label # 查看依赖库列表 $targetItem.Libraries # 查看执行命令列表 $targetItem.Commands
2. 遍历所有id输出对应全部内容
foreach ($item in $myvar.ids) { Write-Host "id编号:$($item.id)" Write-Host "测试标签:$($item.Label)" Write-Host "依赖库:" $item.Libraries | ForEach-Object { Write-Host "- $_" } Write-Host "执行命令:" $item.Commands | ForEach-Object { Write-Host "- $_" } Write-Host "------------------------" }
3. 转换为哈希表实现快速索引
如果你想用id作为key直接快速查询,可以手动将数组转成哈希表:
$idHash = @{} foreach ($item in $myvar.ids) { $idHash[$item.id] = $item } # 之后就可以直接用id取值了 $idHash["121100"] $idHash["121103"].Commands
内容的提问来源于stack exchange,提问作者Preethi
相关产品推荐
相关产品推荐

