お久しぶりです。早速衰退してるブログですが死なせるのはもったいないので更新します。
今回はvisual C#で天気予報を取得してみたいと思います。例によってネットの先人の記録を参考にしまくってます。
参考サイト:Bakulog C#で気象情報REST API(WeatherHacks)を使ってみる
天気予報はLivedoorが無償提供してるWeb API「Weather Hacks」を使います。
ここからもらってきたjson形式のデータの解析は「Newtonsoft.Json」というプラグインを使います。
最初に適当にフォームアプリケーションを作っておきます。
次にNewtonsoft.Jsonを自分の開発してるものにインストールします。(インストールするのをNugetというらしいです)
NuGetは、ツール→Nugetパッケージマネージャー→ソリューションのNugetパッケージの管理
からいけます。
するとインストールできそうな画面が出てくるので、「参照」を選択して検索のところに「json」とか入力するとロケットアイコンが出てくるので、これをインストールします。
これでjsonの解析プラグインのインストールは完了です。
次にコードをです。
以下は今日の東京の天気を取得するサンプルです。
using System; using System.IO; using System.Net.Http; using Newtonsoft.Json.Linq; private void Form1_Load(object sender, EventArgs e) { ////今日の天気予報の取得 string baseUrl = "https://weather.livedoor.com/forecast/webservice/json/v1"; //東京都のID string cityname = "130010"; string url = $"{baseUrl}?city={cityname}"; string json = new HttpClient().GetStringAsync(url).Result; JObject jobj = JObject.Parse(json); string todayweather = (string)((jobj["forecasts"][0]["telop"] as JValue).Value);//今日の天気の取得 Console.WriteLine(todayweather); }
ほとんど参考サイトの丸写しです。実行すると出力のところに今日の東京の天気が表示されます。
ほかの情報を取得したいときはWeatherHacks APIの仕様を参照にしていただくとわかると思います。
上のプログラムが間違ってたら私に連絡するかほかを回ってくださいw(オイ
実はWindowsでデジタルサイネージ作ろうとたくらんでます。いつものように企画倒れになる可能性が高そうですが、、、
信頼されないSSL証明書を回避する方法がわかりません。