2012-02-03 52 views
1

大家好,使用NewtonSoft.Json無法反序列化一些推文

我正在運行使用Twitter Stream API的C#控制檯應用程序。我的代碼是低於

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

對於每個+ - 20個推文,我收到以下錯誤「從JsonReader讀取JObject時出錯」。

我複製了json到JSONLint,它是有效的,所以我很困惑,爲什麼這種情況繼續發生。有沒有其他人有這個錯誤?

回答

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); 
     } 
    } 
0

是的,它剛剛開始發生。我相信它可能是NewtonSoft.Json的bug或是twitter API導致它發送錯誤的jsons。我做了一個數據包捕獲,並通過計數發現了違規角色,但我沒有看到任何錯誤。我想我們只能等待這個bug被修復。

更新 我將Newtonsoft.Json.dll降級到4.3。*,它工作正常。

相關問題