使用 AFNetworking 从流式 JSON API 接收数据的最优雅的方式是什么? AFNetworking 为从 JSON API 接收非流数据提供了出色的支持,但我找不到任何流 JSON 的示例。
AFNetworking 没有内置的流式 SAX 样式 JSON 操作,但应该可以直接创建您自己的操作。
- 创建一个子类
AFJSONRequestOperation
- Use the
outputStream
初始化期间操作的属性,将其连接到支持 SAX 样式解析的 JSON 解析器(例如Yajl)。解析器将读取数据并构建传入的 JSON 对象
- 连接上
responseJSON
属性从解析器读取缓存的对象
- ...或者根据您进行流式处理的方式,您可能需要添加一个新属性来定义新 JSON 对象返回时要执行的块(例如
setReceivedJSONBlock:((^)(void (id JSON))block
)。该块可能会由解析器发送的委托方法触发(例如<YAJLParserDelegate> -parserDidEndDictionary:
).
如果您能够做到这一点,我会鼓励您发布并与其他人分享。我认为这对很多人来说都是有用的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)