Powershell如何从嵌套哈希表中提取哈希表值

问题描述 投票:0回答:1

我向ManageEngine技术支持数据库发出了API请求,该请求返回一个JSON响应,该响应作为以下三个哈希表的自定义对象返回:$ result.response_status,$ result.list_info和$ result.requests。其中三分之一包含我要寻找的数据。

$results.requests.id整数

[$results.requests.subject一个字符串

$results.requester哈希表。

请求者哈希表是@requester{name= 'Martin Zimmerman'; email='[email protected]'}

我想做的是:

$results.requests | select id, subject, requester.name  

获得显示ID,主题和请求者姓名的单行

id   subject         name
--   --------------  --------------
3329 Can't open file Martin Zimmerman 

但是,我无法弄清楚用于提取请求者哈希表中名称键值的术语。

powershell hash
1个回答
1
投票
我认为这就是您想要的。您需要构建一个Calculated Property(示例10)。

$results.requests | Select-Object id,subject,@{l='name';e={$_.requester['name']}}

此方法允许您从哈希表中调用名称键。

编辑

如果您的requester项目是PSCustomObject,请尝试此。

$results.requests | Select-Object id,subject,@{l='name';e={$_.requester.name}}

使用类似的对象结构进行测试。

$results = New-Object psobject $requests = New-Object psobject $requests | Add-Member -MemberType NoteProperty -Name id -Value 2 $requests | Add-Member -MemberType NoteProperty -Name subject -Value "lol" $hash = @{} $hash.Add("email","[email protected]") $hash.Add("name","Martin Zimmerman") $requests | Add-Member -MemberType NoteProperty -Name requester -Value $hash $results | Add-Member -MemberType NoteProperty -Name requests -Value $requests $results.requests | select id,subject,@{l='name';e={$_.requester['name']}} id subject name -- ------- ---- 2 lol Martin Zimmerman

© www.soinside.com 2019 - 2024. All rights reserved.