0

任何帮助,将不胜感激。我在 JSON.Net 内的反序列化过程中抛出异常:

反序列化对象时意外结束。第 216 行,位置 2。

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

在我的 rawJsonCallback 处理程序中设置断点显示(似乎是)从 API 返回的有效 JSON。

添加了 Twitterizer2 和 JSON.Net 的源代码,看起来 Twitterizer.Streaming.TwitterStream.ParseMessage(string) 在第 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 源代码,因此无法逐步完成。

4

2 回答 2

0

也许这可以解决你的问题。当我想将 twitterize 与 JSON.NET 4.5 一起使用时,我也遇到了类似的情况

我按照有人在github上提到的步骤,然后我用新的 json lib 编译了整个源代码,瞧;)

于 2013-01-21T18:49:23.040 回答
0

问题是 Twitterizer 2.4 使用的是 NewtonSoft.Json v4.08,它破坏了它。安装 Newtonsoft.Json v4.03,你会没事的。

于 2012-04-13T13:57:33.583 回答