C# 動的なキーのJSONをデシリアライズする
はてなびゅぅゎぁのコードを部分的に紹介する記事。
#region 宣伝
はてなびゅぅゎぁ公開中です。
はてなびゅぅゎぁ | Windows Phone Apps+Games Store (United States)
#endregion
WP向けに公開中のはてなびゅぅゎぁははてなブックマークのAPIを使用してます。
↓あたり
上の中のはてなブックマーク件数取得APIのJSONレスポンスはちょっと変わって(?)いて、リクエストで指定したURLがキーになってます。(値に被ブクマ数)
{"http://www.hatena.ne.jp/":5790,"http://b.hatena.ne.jp/":6793}
Json.Netあたりでこんなのどうやってデシリアライズするんじゃーって思ったんですが。
Dictionaryに食わしてやればよいようです。
サンプル
void hoge() { var json = @" { ""http://www.hatena.ne.jp/"":5790, ""http://b.hatena.ne.jp/"":6793 } "; // using Newtonsoft.Json; var dic = JsonConvert.DeserializeObject<Dictionary<string, int>>(json); foreach (var key in dic.Keys) Debug.WriteLine("{0}:{1}", key, dic[key]); }
結果
http://www.hatena.ne.jp/:5790 http://b.hatena.ne.jp/:6793
もっとスマートな方法あったら教えてください。