C#でWebApiのお勉強
using Newtonsoft.Json; using Newtonsoft.Json.Linq; private void RequestURL(string url, Action<string> callback) { try { var ret = (new WebClient() { Encoding = Encoding.UTF8 }).DownloadString(url); var json = ret; var json2 = JObject.Parse(json); var search_result = from foo in json2["response"]["prefecture"] select foo; //foreach (var r in search_result) //{ // MessageBox.Show(Convert.ToString(r)); //} var json = ret; callback(json); } catch (Exception ex) { } } private void Form1_Load(object sender, EventArgs e) { RequestURL("http://express.heartrails.com/api/json?method=getPrefectures", (arg) => { #if USE_JCONTAINER var jobj = JsonConvert.DeserializeObject<Newtonsoft.Json.Linq.JContainer>(arg); listBoxKen.Items.AddRange(jobj["response"]["prefecture"].ToArray()); #else // USE_CLASS var jobj = JsonConvert.DeserializeObject<MyJsonFormat.PrefectureResponse>(arg); listBoxKen.Items.AddRange(jobj.response.prefecture); #endif }); } }
*上記ソースコードは
リンク先のファイルを取得して業務用で使用する為一部掲載しています。
ご指摘いただければすぐに削除します。
URLのメモ:
⇒URLの引数を動的に追加するのに何か便利なものないかな。。。
List<Dictionary<Key, Value>>でパラメータを順次取得して、
一回目だけ"?[Key="Value"]"で追加して、
二回目以降は"&[Key="Value"]"で値を追加していけばいいのかな。。。
[C#]JSON.Netを使ってWebサービスから取得したJSONを扱うときのメモ。 | Kimux.Net