我正在使用Xcode 4.3.2 +为iOS 5中的应用程序构建。
我决定使用SBJson来解析来自我们服务器的数据流。我已经验证我从服务器收到了有效的JSON响应。我的问题涉及类SBJsonStreamParser和SBJsonParser背后的设计。
似乎在SBJsonParser中,方法“objectWithData”获取从JSON响应接收的数据,并使用SBJsonStreamParserAccumulator将数据流附加到单个JSON文档中。将数据流收集到一个对象后,然后通过SBJsonStreamParser中的“parse”方法对其进行解析。
我在请求更大的JSON文档时遇到了几个问题。响应的大小似乎是合理的(特别是9.4 KB响应)。当获取大于特定大小的数据流时,SBJsonStreamParser似乎会中断。当响应很小(~3KB)时解析器成功,但当响应较大(~10KB)时解析器失败。 我使用NSLog来验证在这两种情况下,拉动一个小的&大流,方法成功接收完整的json文档 - 因为它看起来像[{“id”:.... 123}]。我确信问题是数据流太长了。
我想知道我是否错误地使用SBJson或者这仅仅是解析器的限制?有什么我可以配置允许SBJsonStreamParser不为更大(但合理)的数据流抛出错误&继续解析完整的回复?
提前致谢!
答案 0 :(得分:1)
实际上,objectWithData:
向后运作。 SBJsonStreamParserAccumulator
用于累积已解析的输出,而不是未解析的数据流。