我目前正在构建一个与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对象是一个字符串,在这种情况下无用。
如果您需要进一步澄清,请与我们联系。
答案 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(我写的),以使这更容易。