1

大家好,

我正在运行一个使用 Twitter Stream API 的 C# 控制台应用程序。我的代码如下

 JToken json = JObject.Parse(ResponseStream.ReadLine());

对于每 +- 20 条推文,我收到以下错误“从 JsonReader 读取 JObject 时出错”。

我将 json 复制到JSONLint 中并且它是有效的,所以我很困惑为什么这种情况不断发生。有没有其他人有这个错误?

4

2 回答 2

0

是的,而且它最近才开始发生。我相信这要么是 NewtonSoft.Json 的错误,要么是 twitter api 的更改导致它发送错误的 json。我做了一个数据包捕获并通过计算它们找到了违规字符,但我没有发现任何错误。我想我们只需要等待这个错误被修复。

更新 我将 Newtonsoft.Json.dll 降级为 4.3.*,它工作正常。

于 2012-03-13T04:17:21.093 回答
0

我发现了这个问题。有时流返回一个空字符串。因此解析空字符串会引发错误。下面是一个关于我如何保护它的例子:

public static void ProccessTweet(object objMessage)
    {
        if(objMessage.ToString() != "")
        {
            var json = JObject.Parse(objMessage.ToString());
            if (json["retweeted_status"] == null)
            {
                var message = ProcessNewTweet(json);
                Db.Votes.Add(new FNBVote
                {
                    Message = message,
                    Entry = Db.Entries.Find(message.Entry.EntryId)
                });

                return;
            }

            ProcessRetweet(json);
        }
    }
于 2012-03-25T17:18:13.273 回答