枚举PSCustomObject作为键/值对

Jes*_*lam 3 powershell

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

{
  "01": {"ID":1, "Name":"Foo"},
  "02": {...},
  "03": {...}
}
Run Code Online (Sandbox Code Playgroud)

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

(Invoke-RestMethod -Uri $uri) | foreach-object {
  $_.ID
  $_.Key.ID
}
Run Code Online (Sandbox Code Playgroud)

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

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

Jes*_*lam 6

结束使用此解决方案:

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