枚举PSCustomObject作为键/值对

时间:2015-06-09 07:37:24

标签: powershell

我在一个返回JSON的URI上调用Invoke-RestMethod,如下所示:

{
  "01": {"ID":1, "Name":"Foo"},
  "02": {...},
  "03": {...}
}

我最终得到一个PSCustomObject,其属性名称是键中的数字,值是对象图,但我想将对象视为键/值对的列表(即:字典)。我试过了:

(Invoke-RestMethod -Uri $uri) | foreach-object {
  $_.ID
  $_.Key.ID
}

等等;但后来意识到Foreach-Object只迭代一次; Invoke-RestMethod的返回值不是IEnumerable

如何在结果对象中获取属性和值的集合?

1 个答案:

答案 0 :(得分:6)

结束使用此解决方案:

$js = (Invoke-RestMethod -Uri = $uri)
$hash = @{}
($js | Get-Member -MemberType NoteProperty).Name | Foreach-Object {
    $hash[$_] = $js.$_
}