0

我正在为 iOS 5 中的应用程序构建 Xcode 4.3.2 +。

我决定使用 SBJson 来解析来自我们服务器的数据流。我已经验证我正在从服务器接收到有效的 JSON 响应。我的问题涉及 SBJsonStreamParser 和 SBJsonParser 类背后的设计。

在 SBJsonParser 中,“objectWithData”方法似乎从 JSON 响应中接收到数据,并使用 SBJsonStreamParserAccumulator 将数据流附加到单个 JSON 文档中。一旦数据流被收集到一个对象中,它就会被 SBJsonStreamParser 中的“parse”方法解析。

在请求更大的 JSON 文档时,我遇到了几个问题。响应的大小似乎是合理的(特别是 9.4 KB 响应)。似乎 SBJsonStreamParser 在获取大于特定大小的数据流时会中断。解析器在响应较小(~3KB)时成功,但在响应较大(~10KB)时失败。我使用 NSLog 来验证在这两种情况下,拉一个小的和大的流,这些方法都成功地接收了完整的 json 文档——因为它看起来像 [{"id": .... 123}]。我确信问题在于数据流太长。

我想知道我是否错误地使用了 SBJson 或者这仅仅是解析器的限制?有什么我可以配置的东西允许 SBJsonStreamParser 不对更大(但合理的)数据流抛出错误并继续解析完整的响应?

提前致谢!

4

1 回答 1

1

实际上,您有objectWithData:向后的工作原理。SBJsonStreamParserAccumulator用于累积解析的输出,而不是未解析的数据流。

于 2012-09-26T22:26:57.530 回答