2014-04-28 136 views
2

我使用电源外壳代码:浏览器中阅读JSON响应

$web_client = new-object system.net.webclient 
    $build_info=web_client.DownloadString("http://<URL>") 
    $suitevm_build_number= 
    $suitevmCLN= 
    $webapp_build= 
    $stats_build= 

输出,同时击中的http://是:

{"message":null,"changeset":"340718","branch":"main","product":"productname","buildNumber":"1775951","todaysDate":"28-4-2014"} 

我应该怎么写电源外壳代码得到:

$suitevm_build_number= 
    $suitevmCLN= 
    $webapp_build= 
    $stats_build= 

回答

6

你的问题很不清楚。如果您有Powershell 3或更高版本,则可以使用ConvertFrom-JSON将JSON响应转换为对象。

$build_info=$web_client.DownloadString("http://<URL>") | ConvertFrom-Json 

防爆输出:

$build_info 

message  : 
changeset : 340718 
branch  : main 
product  : productname 
buildNumber : 1775951 
todaysDate : 28-4-2014 

随着PS 3+,你也可以用Invoke-RestMethod取代的WebClient如图@RickH。

+5

同样的PowerShell 3或4包括[调用-RestMethod](http://technet.microsoft.com/en-us/Library/hh849971.aspx),这将在一个步骤中分析JSON响应于PSObject :'$ build_info = Invoke-RestMethod -Uri'http:// '' – RickH

+1

+1虽然从未使用过,但那更好:) –

+0

@Forde F以及如何从$ build_info获取这些信息? –