在Powershell中检索system.object基类型的字符串值

问题描述 投票:0回答:2

我有来自http post请求的结果,我将内容存储在一个变量中。

$response = Invoke-WebRequest -Uri "https://xxxxxx" -Method Post -Body $Body -Headers $header 
$Content =$response.Content

内容如下:

{"id":"246584121546545124545"}

现在我只想要id的值。我尝试使用select对象和属性参数来获取id的值。但它不起作用的内容是一个字符串。看起来很简单但无法找到检索值的方法。

PS C:\Scripts> $Content.GetType()

IsPublic IsSerial Name                                     BaseType                                                                                                                           
-------- -------- ----                                     --------                                                                                                                           
True     True     String                                   System.Object  
powershell powershell-v5.0
2个回答
1
投票

你也可以使用Invoke-RestMethod

$response = Invoke-RestMethod -Uri "https://xxxxxx" -Method Post -Body $Body -Headers $header 
$response.id

Invoke-RestMethod

Microsoft Docs

Invoke-RestMethod cmdlet将HTTP和HTTPS请求发送到返回结构丰富的数据的Representational State Transfer(REST)Web服务。 Windows PowerShell根据数据类型格式化响应。 对于JavaScript Object Notation(JSON)或XML,Windows PowerShell将内容转换(或反序列化)为对象。


1
投票

尝试从JSON解析为这样的自定义PS对象,然后访问id属性:

> $x = ConvertFrom-Json -InputObject $Content
> $x.id
© www.soinside.com 2019 - 2024. All rights reserved.