AFNetworkingを使用してストリーミングJSON APIからデータを受け取る最もエレガントな方法は何でしょうか? AFNetworkingは、JSON APIから非ストリーミングデータを受け取る優れたサポートを提供していますが、JSONストリーミングの例は見つかりませんでした。IOS上でAFNetworkingを使用したJSONのストリーミング
答えて
AFNetworkingにはストリーミングSAXスタイルのJSON操作が組み込まれていませんが、自分で作成するには簡単です。
- (例えばYajlなど)の解析SAXスタイルをサポートしているJSONパーサーにそれをフックするために、初期化時の動作の
outputStream
プロパティを使用しAFJSONRequestOperation
- のサブクラスを作成します。パーサは、データを読み取り、パーサ
- ...またはあなたはストリーミングをやっている方法に応じからキャッシュされたオブジェクトを読み取るために
responseJSON
プロパティをフックアップ、あなたが必要になることがあり、それは - に来るようJSONオブジェクトを構築します新しいJSONオブジェクトが戻ったときに実行するブロックを定義する新しいプロパティを追加します(例:
setReceivedJSONBlock:((^)(void (id JSON))block
)。このブロックは、おそらくパーサーから送信されたデリゲートメソッド(たとえば、<YAJLParserDelegate> -parserDidEndDictionary:
)によってトリガーされます。
この機能を利用できる場合は、他の人と公開して共有することをおすすめします。私はこれがかなりの人にとって役に立つと思う。
答えをありがとう、私は提案されたアプローチを試してみよう! – akisaarinen
これはAFNetworkingで簡単には機能しません。まず、AFURLConnectionOperationのメソッド-connection:didReceiveData:が正しく実装されていません。これは、常に接続によって提供されるすべてのバイトを消費するストリームに対してのみ機能します。これには、ファイルストリームとメモリストリームが含まれます。しかし、パーサのストリームAPIをNSURLConnectionDelegateと「インタフェース」するためには、固定サイズのバッファを持つデータとペアのストリームを転送する手段として何らかの種類の「同期キュー」を必要とするより徹底したアプローチが必要です。 – CouchDeveloper
これについてもう少し説明できますか? outputStreamをJSONパーサーにフックする方法は? –
- 1. iOS 5ストリーミングJSONエンドポイント
- 2. AFNetworkingでHTTP認証を使用してJSONを取得
- 3. JSON(iOS)を使用したCocoaエラー3840
- 4. AFNetworking 3.Xを使用してBOOLをJSONにポストするObjectiveC
- 5. AFNetworking + JSON + progressダウンロード
- 6. AFNetworking - ETagを使用したリクエスト
- 7. iOS 5 - AFNetworking - アップロードビデオ
- 8. MPMoviePlayerViewControllerを使用してiOS 4のビデオをストリーミングしますか?
- 9. nativescriptでストリーミングjson
- 10. AFNetworkingポストリクエストwith json feedback
- 11. asp.netを使用してインターネット上でライブオーディオとビデオをストリーミング
- 12. AFNetworkingを使用するためのベストプラクティス
- 13. afnetworking iosで検索機能
- 14. AFNetworkingのメモリリークIOSのキャッシュイメージ
- 15. ASP.NETを使用したプログレッシブなMP4ストリーミング
- 16. RTPを使用したVLCストリーミング
- 17. ffserverを使用したRTMPストリーミング
- 18. Rails HAMLを使用したHTTPストリーミング
- 19. コアデータをAFNetworkingのブラウザキャッシュとして使用
- 20. Google Maps for IOSでのJSONの使用
- 21. "performSelectorOnMainThread"を使用してiOS上のコンテキストスイッチ
- 22. iOSでAFNetworkingとCoreDataを使用してリソースをダウンロードするための構造を最適にする方法
- 23. AFNetworking 3.0 AFOTPSessionManager(NSOperationを使用)
- 24. iOS 5 JSONオブジェクトを使用したhttpクエリ
- 25. JSONをGZIPのブラウザにストリーミング
- 26. iOS上のARCを使用したメモリ管理
- 27. iOS Afnetworking:リクエストに不正なアクセスが失敗しました(401)
- 28. このJSONデータをiOSで理解して使用する
- 29. アッカHTTPストリーミングJSONデシリアライズ
- 30. iOS上でJUCE :: paintを使用する
このようなことができましたか? –
私が覚えている限り、非常に単純なJSONストリーミングのサンプルを実装することができましたが、そのすぐ後に私が必要としたIOSプロジェクト(CampFireクライアント)に興味がなくなりました。残念ながらこれで終わったことはありません。 :) – akisaarinen
十分な公正。更新していただきありがとうございます! –