正在分析PowerShell中的System.Object

正在分析PowerShell中的System.Object,powershell,Powershell,我有一个Powershell命令,它从执行HTTP Get的调用RestMethod返回一个对象。如果我回显返回,它看起来如下所示: policies -------- {@{id=12345; name=xxxx; ... } 政策 -------- {@{id=12345;name=xxxx;…} 我想解析出id的值。我将采取什么方法来实现这一点?如@Will comment->UseGet Member中所述,以获取对象类型,如: $returnVal = Invoke-RestMetho

我有一个Powershell命令,它从执行HTTP Get的
调用RestMethod
返回一个对象。如果我回显返回,它看起来如下所示:

policies -------- {@{id=12345; name=xxxx; ... } 政策 -------- {@{id=12345;name=xxxx;…}
我想解析出
id
的值。我将采取什么方法来实现这一点?

如@Will comment->Use
Get Member
中所述,以获取对象类型,如:

$returnVal = Invoke-RestMethod ...
$returnVal | Get-Member
这应该返回返回的对象的类型(包括可以对该对象调用的方法和属性)。 似乎
策略
可能是一本字典,但我不确定。如果是一本字典,你可以试试:

$returnVal = Invoke-RestMethod ...
$dict = $returnVal | select -ExpandProperty policies
$id = $dict.Get_Item("id")
如果是简单的JSON,您可以通过以下方式对其进行反序列化:

$returnVal = Invoke-RestMethod ...
$derserializedJsonObject = $returnVal | select policies | ConvertTo-Json

希望这对@Will comment->Use
Get Member
获取对象类型有所帮助,如:

$returnVal = Invoke-RestMethod ...
$returnVal | Get-Member
这应该返回返回的对象的类型(包括可以对该对象调用的方法和属性)。 似乎
策略
可能是一本字典,但我不确定。如果是一本字典,你可以试试:

$returnVal = Invoke-RestMethod ...
$dict = $returnVal | select -ExpandProperty policies
$id = $dict.Get_Item("id")
如果是简单的JSON,您可以通过以下方式对其进行反序列化:

$returnVal = Invoke-RestMethod ...
$derserializedJsonObject = $returnVal | select policies | ConvertTo-Json

希望这有助于

回显返回类型--Object.GetType()(我想可以在powershell中这样调用吗?)将告诉您返回的对象类型。然后您将知道如何处理它,如果不处理,并说明返回的类型。回显返回类型--Object.GetType()(我想可以在powershell中这样调用?)将告诉您返回的对象类型。然后您将知道如何处理它,如果没有,则说明返回的类型。$dict.Get\u项不起作用…方法调用失败,因为[Selected.System.Management.Automation.PSCustomObject]不包含名为“Get\u Item”的方法$dict.Get\u Item不起作用…方法调用失败,因为[Selected.System.Management.Automation.PSCustomObject]不包含名为“Get\u Item”的方法