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



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

$results.requests.id整数

$results.requests.subject字符串

$results.requester哈希表。

请求者哈希表@requester{name= 'Martin Zimmerman'; email='mzimmer@company.com'}

我希望能够做的是:

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

获取显示 ID、主题和请求者姓名的单行

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

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

我认为这就是你想要的。您需要生成计算属性(示例 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","mzimmerman@company.com")
$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

最新更新