Hashtable输出Asp.net MVC

时间:2011-12-23 11:55:10

标签: asp.net-mvc twitter hashtable

任何人都可以帮我回复。写一节?它会是什么?

糟糕!您的问题无法提交,因为: 你的帖子没有太多的上下文来解释代码部分;请更清楚地解释一下你的情景。

   public void Test()
    {

        Hashtable hs = new Hashtable();
        ArrayList a = new ArrayList();

        WebRequest wr = WebRequest.Create(string.Format("http://search.twitter.com/search.json?q={0}&rpp={1}&page={2}", "seni seviyorum", 20, 1));
        Stream s = wr.GetResponse().GetResponseStream();
        StreamReader sr = new StreamReader(s);
        string Sonuc = sr.ReadToEnd();

        hs = (Hashtable)JSON.JsonDecode(Sonuc);

        string from_user = hs["from_user"] != null ? hs["from_user"].ToString() : "";
        string to_user = hs["to_user"] != null ? hs["to_user"].ToString() : "";
        string text = hs["text"] != null ? hs["text"].ToString() : "";
        string profile_image_url = hs["profile_image_url"] != null ? hs["profile_image_url"].ToString() : "";
        string tweet_id = hs["id"] != null ? hs["id"].ToString() : "";
        DateTime created_at = hs["created_at"] != null ? DateTime.Parse(hs["created_at"].ToString()) : DateTime.Now;
        string twitter_url = string.Format("http://twitter.com/{0}/statuses/{1}", from_user, tweet_id);

        foreach (Hashtable oItem in (ArrayList)hs["results"])
        {
            Response.Write(oItem.?);
        }
    }

1 个答案:

答案 0 :(得分:0)

您最好在此处创建一个比在结果中存储信息时更好的哈希表的数据结构。我相信有很多例子。

我不确定你有什么json库,但是我对newtonsoft.Json有很多好运 - 可以由nuget安装。

所以无论如何,这里的主要问题是Hashtables并不适合从中获取数据。因为它是你可以调查返回的json,然后找出下一级元素是什么。

在json上嗅探你可以看到hte返回的结构看起来像这样(我猜想我可能会将它存储为内部哈希表,尽管我无法调试它来告诉):

{ "created_at" : "Fri, 23 Dec 2011 13:56:34 +0000",
    "from_user" : "Canboonn",
    "from_user_id" : 251744686,
    "from_user_id_str" : "251744686",
    "from_user_name" : "Bayram Can Avci",
    "geo" : null,
    "id" : 150213210446897152,
    "id_str" : "150213210446897152",
    "iso_language_code" : "tr",
    "metadata" : { "result_type" : "recent" },
    "profile_image_url" : "http://a1.twimg.com/profile_images/1700040754/IMG_8783_normal.JPG",
    "profile_image_url_https" : "https://si0.twimg.com/profile_images/1700040754/IMG_8783_normal.JPG",
    "source" : "<a href="http://twitter.com/">web</a>",
    "text" : "30 Aralik'a kadar 10 TL yüklersem her yöne 100 dakika, 100 sms ve 100 MB internet hediyeee, seviyorum seni #vodafone",
    "to_user" : null,
    "to_user_id" : null,
    "to_user_id_str" : null,
    "to_user_name" : null
  }

所以你可以去

foreach (Hashtable oItem in (ArrayList)hs["results"])
{
   Response.Write(oItem["from_user"]);
}

如果这不起作用,那么尝试查看oItem.Keys属性并查看waht在那里。可能还有一些线索。

例如,写一个结果的属性。