2011-01-04 6 views
16

jsonを返す快適なWeb​​サービスを介してステータスを更新するために、既存のpowershellスクリプトを統合する必要があります。私はPowerShellの新機能ですが、System.Net.WebRequestオブジェクトが以下のようなことをすることができました。Powershellを使って安らかなWebサービスにアクセスするにはどうすればよいですか?

私はどこここから行くし、ネイティブのデータ型にこれを解析する方法がわからないオブジェクト

[ {id:1}, {id:2}] // etc 

のJSON配列を返す

$a = [System.Net.WebRequest]::Create("http://intranet/service/object/") 
$a.Method = "GET" 
$a.GetResponse() 

。投稿と削除もできるようにしたいと思います。

任意のポインタ?そして、json/restライブラリやcommand-letsはありますか?

+0

http://duncan-cragg.org/blog/post/getting-data-rest-dialogues/ – reconbot

答えて

2

@Jaykulは、ここに上の彼のMindTouchのdreamwikiスクリプトの一部であるRESTfulな機能の素敵なセットを書きました:あなたが欲しいhttp://poshcode.org/691

28

は、PowerShellのとその起動-RestMethodをConvertTo-JSONです、およびConvertFrom-Jsonコマンドレット。あなたのコードは次のようになります:

$ stuff = invoke-restMethod -Uri $ url -Method Get;

ConvertFrom-Jsonを$ stuff =>で呼び出す必要はありません。すでに使用可能な非文字列形式です。

については記事|置き、単にPowerShellは、あなたのデータを構造化し、その後、RestMethodを起動するか、呼び出し、WebRequestクラスに渡す前に、その上にをConvertTo-JSONを呼び出すためにハッシュや配列を使用します。

のinvoke-WebRequestクラスを - Uri $ url -ContentTypeアプリケーション/ jsonメソッド後メソッド$ objectConvertedToJson

詳細はhttp://technet.microsoft.com/en-us/Library/hh849971.aspxを参照してください。

+1

あなたは完全に正しいですが、powershell 3はまだかなり新しく、私が働いている場所には配備されていません。 – reconbot

+0

素晴らしい、ありがとう – Dave