iOSでAfnetworkingでJSONをストリーミングします
-
28-10-2019 - |
質問
AfnetWorkingを使用してストリーミングJSON APIからデータを受信する最もエレガントな方法は何ですか? AfnetWorkingは、JSON APIから非ストリーミングデータを受信するための優れたサポートを提供しますが、JSONのストリーミングの例は見つかりませんでした。
解決
Afnetworkingには組み込みのストリーミングSAXスタイルのJSON操作はありませんが、独自のストリーミングを作成するのは簡単です。
- のサブクラスを作成します
AFJSONRequestOperation
- 使用
outputStream
初期化中の操作の特性は、SAXスタイルの解析をサポートするJSONパーサーに接続します( Yajl)。パーサーはデータを読み取り、JSONオブジェクトが入っているときに構築します - フックアップします
responseJSON
パーサーからキャッシュされたオブジェクトを読むプロパティ - ...または、ストリーミングの方法によっては、新しいJSONオブジェクトが戻ってきたときに実行するブロックを定義する新しいプロパティを追加する必要がある場合があります(例:
setReceivedJSONBlock:((^)(void (id JSON))block
)。このブロックは、おそらくパーサーから送信されたデリゲートメソッドによってトリガーされます(例:<YAJLParserDelegate> -parserDidEndDictionary:
).
これを機能させることができれば、これを公開して他の人と共有することをお勧めします。これはかなりの数の人々にとって有用だと思います。
所属していません StackOverflow