大家好,使用NewtonSoft.Json無法反序列化一些推文
我正在運行使用Twitter Stream API的C#控制檯應用程序。我的代碼是低於
JToken json = JObject.Parse(ResponseStream.ReadLine());
對於每個+ - 20個推文,我收到以下錯誤「從JsonReader讀取JObject時出錯」。
我複製了json到JSONLint,它是有效的,所以我很困惑,爲什麼這種情況繼續發生。有沒有其他人有這個錯誤?
大家好,使用NewtonSoft.Json無法反序列化一些推文
我正在運行使用Twitter Stream API的C#控制檯應用程序。我的代碼是低於
JToken json = JObject.Parse(ResponseStream.ReadLine());
對於每個+ - 20個推文,我收到以下錯誤「從JsonReader讀取JObject時出錯」。
我複製了json到JSONLint,它是有效的,所以我很困惑,爲什麼這種情況繼續發生。有沒有其他人有這個錯誤?
我發現了這個問題。有時流會返回一個空字符串。因此解析一個空字符串會引發錯誤。下面是我如何保護它的示例:
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);
}
}
是的,它剛剛開始發生。我相信它可能是NewtonSoft.Json的bug或是twitter API導致它發送錯誤的jsons。我做了一個數據包捕獲,並通過計數發現了違規角色,但我沒有看到任何錯誤。我想我們只能等待這個bug被修復。
更新 我將Newtonsoft.Json.dll降級到4.3。*,它工作正常。