我收到了http发帖请求的结果,并且将内容存储在一个可变参数中。
$response = Invoke-WebRequest -Uri "https://xxxxxx" -Method Post -Body $Body -Headers $header
$Content =$response.Content
内容如下:
{"id":"246584121546545124545"}
现在我只想要id的值。我尝试使用选择对象和属性参数来获取ID的值。但是它不起作用,因为内容是字符串。看起来很简单,但是找不到找到该值的方法。
PS C:\Scripts> $Content.GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True String System.Object
答案 0 :(得分:1)
尝试像这样从JSON解析到自定义PS对象,然后访问id
属性:
> $x = ConvertFrom-Json -InputObject $Content
> $x.id
答案 1 :(得分:1)
您也可以使用Invoke-RestMethod
。
$response = Invoke-RestMethod -Uri "https://xxxxxx" -Method Post -Body $Body -Headers $header
$response.id
Invoke-RestMethod
cmdlet将HTTP和HTTPS请求发送到代表性状态传输(REST)Web服务,该服务返回结构丰富的数据。
Windows PowerShell根据数据类型设置响应的格式。
对于JavaScript对象表示法(JSON)或XML,Windows PowerShell将内容转换(或反序列化)为对象。