2012-04-10 67 views
0

任何幫助,將不勝感激。我在JSON.Net內部的反序列化過程中遇到異常:Twitterizer2 1.2.4流API異常 - 反序列化對象意外結束

反序列化對象時意外結束。行216,位置2.

我的調用代碼: var asyncResult = s.StartPublicStream(streamErrorCallback,statusCreatedCallback,statusDeletedCallback,eventCallback,rawJsonCallback);

在我的rawJsonCallback處理程序中設置斷點顯示(似乎是)從API返回的有效JSON。

增加了Twitterizer2和JSON.Net源,貌似Twitterizer.Streaming.TwitterStream.ParseMessage(串)未能在此線附近520

var user = obj.SelectToken("user", false); 
    if (user != null) 
     { 
      if (statusCreatedCallback != null && user.HasValues) 
      { 
       statusCreatedCallback(JsonConvert.DeserializeObject<TwitterStatus>(ConvertJTokenToString(obj))); 

      } 
      return; 
     } 

在調用DeserializeObject()。

Newtonsoft.Json.Serliazation.JsonSerializerInternalReader.PopulateObject()失敗,因爲reader.TokenType == None。

我懷疑合同類型/值與從API返回的對象之間存在差異,但我不確定如何進一步測試。無法獲取Json.Net源代碼進行編譯,因此我無法完成它。

回答

0

問題是Twitterizer 2.4正在使用NewtonSoft.Json v4.08,它打破了它。安裝Newtonsoft.Json v4.03,你會沒事的。

+0

謝謝,我會試試看。 – mellodev 2012-04-16 17:54:25

+0

這是nuget劍的雙刃。 – 2012-04-25 14:50:37

0

也許這可以解決您的問題。我有一個simillar當我想要JSON.NET使用twitterize 4.5

我按照有人在github上提到的步驟,然後我編譯了新的json庫和voilá的全部源代碼;)