読者です 読者をやめる 読者になる 読者になる

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