【发布时间】:2013-11-06 00:27:41
【问题描述】:
我正在使用 TweetSharp 检索推文,这些推文又使用 Newtonsoft 的 JSON.NET。这是应用代码,很简单。
ListTweetsOnUserTimelineOptions listTweetsOnUserTimelineOptions =
new ListTweetsOnUserTimelineOptions();
listTweetsOnUserTimelineOptions.ScreenName = "MarilynDenisCTV";
listTweetsOnUserTimelineOptions.IncludeRts = false;
var tweets = twitterService.ListTweetsOnUserTimeline(listTweetsOnUserTimelineOptions).Take(50);
有一条推文给我带来了麻烦。我得到的异常出现在 TweetSharp 源代码中的这行代码中。
public virtual object DeserializeJson(string content, Type type)
{
using (var stringReader = new StringReader(content))
{
using (var jsonTextReader = new JsonTextReader(stringReader))
{
return _serializer.Deserialize(jsonTextReader, type);
}
}
}
这是我得到的例外
Cannot deserialize the current JSON array (e.g. [1,2,3]) into type 'TweetSharp.TwitterStatus' because the type requires a JSON
object (e.g. {"name":"value"}) to deserialize correctly.
To fix this error either change the JSON to a JSON object (e.g. {"name":"value"}) or change the deserialized type to an array or a
type that implements a collection interface (e.g. ICollection, IList) like List<T> that can be deserialized from a JSON array.
JsonArrayAttribute can also be added to the type to force it to deserialize from a JSON array.
Path '',
我从 TweetSharp 下载了最新的源代码,但这似乎没有帮助,有什么想法吗?还有一件事,一个问题推文以 [{"created_at": "Sun Nov 03 21:44:51 +0000 2013" 开头,应该是 {"created_at": "Sun Nov 03 21:44:51 +0000 2013 ",它有额外的方括号。
【问题讨论】:
-
似乎您知道问题出在哪里......额外的“[”。要么删除它(你有字符串),要么写信给他们抱怨他们没有涵盖最终情况......
-
好吧,Tweetsharp 不再受支持。所以我将不得不删除额外的 [.但我很想知道为什么其他人没有遇到同样的问题,以及为什么只有一条推文特别给出了问题
-
我也有同样的问题。但我也读到 TweetSharp 自 2.3.1 起停止了其开发。 (如您所知)因此,如果自上次发布以来 Twitter API 发生任何更改。您将不得不更改库。哪个 s*cks 因为它是我正在使用的第二个库。首先是 Twitter2lite,现在是 Tweetsharp,啊(见我的沮丧)
-
试试 TweetInvi。那是我正在试验的新的
-
@doglin 一个旧帖子,但我刚刚遇到这个问题,我继承了一个最初外包的项目。推文停止工作,所以留给我修复。我理解了这个错误,但修复起来很棘手...... 2 小时后,仍然无法正常工作。
标签: c# json.net tweetsharp