YAJL-ObjC +流解析器 +压缩包

发布于 2024-09-06 10:04:07 字数 637 浏览 11 评论 0原文

我成功使用 yajl-objc 以及 ASIHTTPRequest 在 iPhone 项目中,它进行网络访问并提取和解析 JSON 数据。 ASIHTTPRequest 默认允许 gzip 压缩的 HTTP 响应,这很好,但我使用的是 YAJL 的流解析器功能,它理所当然地会阻塞 gzip 压缩的数据。我可以等到 HTTP 请求完成,然后取消 gzip 并解析响应,但我在这里追求速度,并希望在下载时解析 gzip 数据。

是否可以动态解压缩数据,解析其中的 JSON,然后忘记那块 gzip 数据?

如果最后一部分可以解决,那么此设置似乎将有助于伟大的系统:

  • YAJL 是 ASIHTTPRequest 周围最快的 JSON 解析器之一,
  • 很简单,异步
  • 响应主体可以压缩,节省在线流量
  • JSON 可以解析,无需将整个树加载到受限的设备内存中

任何指导将不胜感激!

I'm successfully using yajl-objc along with ASIHTTPRequest in an iPhone project that does network access and pulls down and parses JSON data. ASIHTTPRequest allows gzipped HTTP responses by default, which is great, but I'm using the streaming parser ability of YAJL and it rightfully chokes on gzipped data. I can wait until the HTTP request has finished then un-gzip and parse the response, but I'm going for speed here and would like to parse the gzipped data as it downloads.

Is it possible to un-gzip data on the fly, parse the JSON within, then forget about that chunk of gzipped data?

If this last part could be solved, this setup seems like it would make for a great system:

  • YAJL is one of the fastest JSON parsers around
  • ASIHTTPRequest is easy and asynchronous
  • Response bodies could be gzipped, saving on-the-wire traffic
  • JSON could be parsed without loading the whole tree into constrained device memory

Any guidance would be greatly appreciated!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文