2020年7月31日、「livedoor 天気」のサービスは終了しました。新しく別のAPIで天気予報を取得するアプリケーションを作成したのでこちらをごらんください。

Open Map WeatherのAPIを用いて天気予報を取得する

ネタがなくなってきたので、今回はライブドアのお天気Webサービスを使ってプログラミングをしてみました。

お天気Webサービス仕様は以下のようになっています。

お天気Webサービス仕様

それではやってみましょう。

JSONデータをリクエストする際のベースとなるURLは以下になります。
http://weather.livedoor.com/forecast/webservice/json/v1

ここにパラメータを加えてリクエストします。

パラメータ名はcity。地域別に定義されたID番号を表します。東京であれば130010を指定します。http://weather.livedoor.com/forecast/webservice/json/v1?city=130010でリクエストをすればよいということになります。

リクエストをするとレスポンスが返ってきますが、このときにJSONデータは、

http://weather.livedoor.com/weather_hacks/webservice
を参照してください。

ボタンをクリックすると天気に関する情報を取得し、テキストで表示します。

ではリクエストに対するレスポンスをどのように処理すればいいのでしょうか?

JSONデータを扱うので[参照の追加]から System.Runtime.Serializationを追加します。これでDataContractJsonSerializerクラスを使うことができるようになります。

このようにしてストリームを取得して

serializer.ReadObject(stream)とやればJSONデータを取得できます。ライブドアのお天気WebサービスのJSONデータ構造にあわせて以下のようなクラスを作成します。

とやればJSONデータが取得できるので、あとはdataに格納されたデータを取得して表示させるだけです。

あとはGetWeatherTextメソッドが返した文字列を取得するだけです。