如何解析从Twitter Search API返回的信息?

时间:2018-01-10 18:08:06

标签: c# twitter

我目前正在构建一个与Twitter Search API交互的Web应用程序,并根据输入返回推文。我收到的数据还给了我,但它的出现让我不知道如何处理它。有人可以建议改进或我如何处理这些数据,以便我可以格式化结果吗?

以下是代码:

    public ActionResult SearchTwitter(string authenticationCode, TwitterSearch twitterSearch) //TwitterSearch holds information needed to build the URL
    {
        string url = BuildURL(twitterSearch);
        var gettimeline = WebRequest.Create(url) as HttpWebRequest;
        gettimeline.Method = "GET";
        gettimeline.ContentType = "application/x-www-form-urlencoded";
        gettimeline.Headers[HttpRequestHeader.Authorization] = "Bearer " + authenticationCode;
        JsonResult result = new JsonResult();
        try
        {
            var respbody = ""; //used to be string
            using (var resp = gettimeline.GetResponse().GetResponseStream())//there request sends
            {
                var respR = new StreamReader(resp);
                respbody = respR.ReadToEnd();
            }

            result = Json(respbody);
        }

这是故障点,其他一切都很好(例如最后的catch和return语句)。

我不知道在哪里可以有效地解析这些数据,因为JsonResult.Data对象是一个字符串,在这种情况下无用。

如果您需要进一步澄清,请与我们联系。

1 个答案:

答案 0 :(得分:0)

您可以使用Json.net,如下所示:

        var respbody = ""; //used to be string
        using (var resp = gettimeline.GetResponse().GetResponseStream())//there request sends
        {
            var respR = new StreamReader(resp);
            respbody = respR.ReadToEnd();
            JObject timeline = JObject.Parse(respbody);
            // use the docs at Newtonsoft.com to figure out how to read timeline
        }

请注意,我添加了JObject.Parse(respbody),它会为您提供包含已解析的JSON数据的JObject。 Newtonsoft.com上的文档相当不错,不需要花太多时间来完成剩下的工作。

您可以从NuGet安装Newtonsoft.Json包。或者,您也可以考虑使用第三方库,例如LINQ to Twitter(我写的),以使这更容易。