C# twitter API数据的json.NET解析问题

C# twitter API数据的json.NET解析问题,c#,twitter,json.net,C#,Twitter,Json.net,我已经在项目中成功使用json.NET一段时间了,没有任何问题。昨晚,我遇到了我的第一个案例,json.NET在解析从可靠来源(twitter API)返回的json数据时崩溃 具体而言,此代码会导致以下错误: string sCmdStr = String.Format("https://api.twitter.com/1/users/lookup.json?screen_name={0}", sParam); string strJson = _oauth.APIWebRequest("GE

我已经在项目中成功使用json.NET一段时间了,没有任何问题。昨晚,我遇到了我的第一个案例,json.NET在解析从可靠来源(twitter API)返回的json数据时崩溃

具体而言,此代码会导致以下错误:

string sCmdStr = String.Format("https://api.twitter.com/1/users/lookup.json?screen_name={0}", sParam);
string strJson = _oauth.APIWebRequest("GET", sCmdStr, null);
JObject jsonDat = JObject.Parse(strJson);
在我的例子中,sParam字符串包含大约25个twitter数字id。twitter API调用成功,但json.NET解析调用失败,错误如下:

“从JsonReader读取JObject时出错。当前JsonReader项不是对象:StartArray”


还有其他人碰到过这个吗?有人知道这件事吗?在我解决它之前,我一直处于停滞状态。

我得到了完全相同的错误,并最终找到了答案。使用JArray.Parse代替JObject.Parse。下面是您的代码:

string sCmdStr = String.Format("https://api.twitter.com/1/users/lookup.json?screen_name={0}", sParam);
string strJson = _oauth.APIWebRequest("GET", sCmdStr, null);
JArray jsonDat = JArray.Parse(strJson);
然后,您可以在数组中循环并为每个tweet创建一个jobject

for(int x = 0; x < jsonDat.Count(); x++)
{
     JObject tweet = JObject.Parse(jsonDat[x].toString());
     string tweettext = tweet["text"].toString();
     //whatever else you want to look up
}
for(int x=0;x
我对twitter api知之甚少,但其来源应该并不重要。你能给我们一个strJson将包含什么的例子吗?是的,你可以在这里看到twitter返回的json数据示例:。@DrewStoddard如果你试过我的答案,你就会知道
JObject.Parse
有什么问题,以及为什么我的json.Net扩展类工作得很好。但由于你似乎不感兴趣,我删除了答案。@L.B很遗憾你删除了它,OP以外的人可能会发现它很有用。谢谢你。看起来它确实可以解决我们遇到的具体问题。在json阅读器类出现了几个类似的问题之后,我们决定在TwitterAPI中完全放弃json,使用它们的XML协议。这是一个很好的决定,因为从那时起,我们能够以更高的发展速度前进。XML可能更为冗长,但它的成熟度和对它的支持让它很难被击败。