1. ホーム
  2. スクリプト・コラム
  3. パワーシェル

PowershellでWebServicesをリクエストし、結果をJSON形式で出力する

2022-02-06 12:14:05

PS 3.0以降で動作します。

ここでは、ウェブから多くの情報をJSON形式で取得することができます。次の例は、ウェブからの結果をJSONオブジェクトに変換する方法を示しています。

この例では、ドイツの鉄道会社のホームページを使用しています。駅名や都市名を入力すると、行きたい駅のような駅名がすべて返ってきます。

コピーコード コードは以下の通りです。

# ask for part of the train station name
$name = Read-Host 'Enter part of train station Name'
# query webservice
$url = "http://openbahnapi.appspot.com/rest/stations/list?contains=$name"
$site = Invoke-WebRequest -Uri $url
# get JSON result
($site.Content | ConvertFrom-Json ).value

この結果は、以下のようなものです。
コピーコード コードは以下の通りです。

PS> Enter part of train station name: hanno
Hannover Hbf
HANNOVER MESSE
Hannoversch Münden
Hannover-Nordstadt
Hannover Bismarckstr.
Hannover Karl-Wiechert-Allee
Hannover-Ledeburg
Hannover-Linden/Fischerhof
Hannover-Vinnhorst
Hannover-Leinhausen
Hannover Anderten-Misburg
Hannover-Bornum

PS>

この例は、ドイツの鉄道を調べることを教えるためのものではありませんので、もし興味がなければ、別の用途に改造してください。
Invoke-WebRequestは、Webサービスから返される結果を含む重要な部分です。また、ConvertFrom-Jsonは、結果をオブジェクトに変換するために非常に重要です。
Webサービスが変更を処理することに注意してください。これは単なる使用例です。