在PowerShell中解析System.Object

时间:2017-07-12 20:23:40

标签: powershell

我有一个Powershell命令,它返回正在执行HTTP Get的Invoke-RestMethod中的对象。如果我回复回报,它看起来像这样:

policies
--------
{@{id=12345; name=xxxx; ... }

我想解析id的值。我将采取什么方法来实现这一目标?

1 个答案:

答案 0 :(得分:0)

如@Will评论中所述 - >使用Get-Member获取对象类型,例如:

$returnVal = Invoke-RestMethod ...
$returnVal | Get-Member

这应返回返回对象的类型(包括您可以在对象上调用的方法和属性)。 似乎policies可能是字典,但我不确定。如果是字典,您可以尝试:

$returnVal = Invoke-RestMethod ...
$dict = $returnVal | select -ExpandProperty policies
$id = $dict.Get_Item("id")

如果是简单的JSON,您可以通过以下方式对其进行反序列化:

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

希望有所帮助