在windows power shell中读取json响应

Sha*_*jan 10 powershell json

我使用的是power shell代码:

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

在点击http://时在浏览器中输出是:

{"message":null,"changeset":"340718","branch":"main","product":"productname","buildNumber":"1775951","todaysDate":"28-4-2014"}
Run Code Online (Sandbox Code Playgroud)

我该怎么写power shell代码才能获得:

  $suitevm_build_number=
    $suitevmCLN=
    $webapp_build=
    $stats_build=
Run Code Online (Sandbox Code Playgroud)

Fro*_* F. 11

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

$build_info=$web_client.DownloadString("http://<URL>") | ConvertFrom-Json
Run Code Online (Sandbox Code Playgroud)

输出量:

$build_info

message     : 
changeset   : 340718
branch      : main
product     : productname
buildNumber : 1775951
todaysDate  : 28-4-2014
Run Code Online (Sandbox Code Playgroud)

使用PS 3+,你也可以用@RickH替换Invoke-RestMethodwebclient.

$build_info = Invoke-RestMethod -Uri "http://<URL>"
Run Code Online (Sandbox Code Playgroud)

  • 类似地,PowerShell 3或4包括[Invoke-RestMethod](http://technet.microsoft.com/en-us/Library/hh849971.aspx),它将在一步中解析对PSObject的JSON响应:`$ build_info = Invoke -RestMethod -Uri'http:// <URL>'` (7认同)