我已经向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