Powershell 请求帮助以分析字符串

Powershell 请求帮助以分析字符串,powershell,Powershell,我正在使用Invoke WebRequest获取HtmlWebResponseObject对象。当描述字段与特定字符串(在本例中为“server1”)匹配时,我希望获取ID字段的值。Invoke WebRequest返回了数百个结果(因此字符串非常长)。给定下面的示例,如何提取ID { “地位”:200, “数据”:[ { “nextRecipient”:0, “Clearnet”:是的, “lastSentNotificationOn”:0, “netscanVersion”:“0”, “su

我正在使用Invoke WebRequest获取HtmlWebResponseObject对象。当描述字段与特定字符串(在本例中为“server1”)匹配时,我希望获取ID字段的值。Invoke WebRequest返回了数百个结果(因此字符串非常长)。给定下面的示例,如何提取ID

{ “地位”:200, “数据”:[ { “nextRecipient”:0, “Clearnet”:是的, “lastSentNotificationOn”:0, “netscanVersion”:“0”, “suppressAlertClear”:“false”, “建造”:“19000”, “lastSentNotificationOnLocal”:”, “id”:6, “重新发送”:15, “watchdogUpdatedOn”:“2016-04-11 10:28:02 MDT”, “升级链ID”:6, “说明”:“域\服务器1”, “ackComment”:“, “证书2”:“证书”, “更新日期”:1460392096, “更新本地”:“2016-04-11 10:28:16 MDT”, “agentConf”:“product.code={guid}\不应修改安装程序版本。version=0001\r\n\r\n\r\n由代理配置向导生成\r\nserver=url\r\ncompany=company\r\nid=6\r\ncredential==cred\r\n\r\n\logger设置。将logger.size设置为0,不限制logger大小,否则,大小限制为该logger.output=console\r\nlogger指定的MB字节r、 logfile=\r\nlogger.size=64\r\nlogger.level=info\r\n\r\n#watchdog log level\r\nlogger.watchdog=info\r\n#对于每个组件,在此处添加更详细的控件\r\n#例如.\r\n#logger.level controller=debug\r\n#\r\n#如果未设置,它将使用默认日志级别,即logger.level的值\r\n 35n#false\r\n 35n#如果watchdog代理为false\r\nentmonitorwatchdog=true\r\n\r\n#watchdog是否升级代理,默认为true\r\nagent.autoupgrade=true\r\n\r\n#服务连接超时。默认为5秒用于连接,30秒用于从服务器发送/读取源\r\n服务。连接超时=5\r\n服务。读取超时=30\r\n\r\n#SSL和代理设置\r\nssl.enable=true\r\nproxy.enable=false\r\nproxy.host=\r\nproxy.port=\r\nproxy.user=\r\nproxy.pass=\r\nproxy.exclude=\r\n\r\n#sbproxy设置\r\nsbproxy.address=127.0.0.1\r\nsbproxy.port=72\r\nsbproxy.logsize=64\r\nsbproxy.restartOn102=false\r\nsbproxy.pdhNoAuthentication=false\r\n\r\n\n\n#池连接设置\r\nsbproxy\r\n


谢谢。

将响应从JSON字符串转换为对象,并展开相关属性:

$response | ConvertFrom-Json |
  Select-Object -Expand data |
  Where-Object { $_.description -match 'server1' } |
  Select-Object -Expand id

将响应从JSON字符串转换为对象,并展开相关属性:

$response | ConvertFrom-Json |
  Select-Object -Expand data |
  Where-Object { $_.description -match 'server1' } |
  Select-Object -Expand id

使用您发布的代码,我可以看到所有的ID,但我只想要“server1”的ID。
$response | convertfromjson | Select Object-ExpandProperty data | Select Object-ExpandProperty ID |其中{$\ eq'6'}
只返回一个条目,但我只返回一个属性。我尝试了
$response | ConvertFrom Json | Select Object-ExpandProperty data | Select Object-ExpandProperty id | Where{$response | ConvertFrom Json | Select Object-ExpandProperty description | Where{$|-eq“server1}
,但这也给了我所有的id。很抱歉,在展开id之前,在描述中添加了4个formatFilter。请参阅更新的答案。太棒了!我不知道在哪里粘贴该筛选器。:)使用您发布的代码,我可以看到所有id,但我只想要“server1”的id“
$response | ConvertFrom Json | Select Object-ExpandProperty data | Select Object-ExpandProperty id |其中{$\ueq'6'}
只返回一个条目,但我只返回一个属性。我尝试了
$response | ConvertFrom Json | Select Object ExpandProperty data | Select Object ExpandProperty id |其中{$response | ConvertFrom Json | Select Object-ExpandProperty data | Select Object-ExpandProperty description | where{$|-eq“server1”}
,但这也给了我所有的id。很抱歉,在扩展id之前,在描述上设置了4个formatFilter。请参阅更新后的答案。太棒了!我想不出在哪里粘贴该筛选器。:)