我有来自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
你也可以使用Invoke-RestMethod
。
$response = Invoke-RestMethod -Uri "https://xxxxxx" -Method Post -Body $Body -Headers $header
$response.id
Invoke-RestMethod
cmdlet将HTTP和HTTPS请求发送到返回结构丰富的数据的Representational State Transfer(REST)Web服务。 Windows PowerShell根据数据类型格式化响应。 对于JavaScript Object Notation(JSON)或XML,Windows PowerShell将内容转换(或反序列化)为对象。
尝试从JSON解析为这样的自定义PS对象,然后访问id
属性:
> $x = ConvertFrom-Json -InputObject $Content
> $x.id