6

AFNetworking を使用してストリーミング JSON API からデータを受信する最もエレガントな方法は何ですか? AFNetworking は、JSON API から非ストリーミング データを受信するための優れたサポートを提供しますが、ストリーミング JSON の例は見つかりませんでした。

4

1 に答える 1

12

AFNetworking には組み込みのストリーミング SAX スタイルの JSON 操作はありませんが、独自の操作を簡単に作成できます。

  • のサブクラスを作成しますAFJSONRequestOperation
  • outputStream初期化中に操作のプロパティを使用して、SAX スタイルの解析をサポートする JSON パーサー ( Yajlなど) に接続します。パーサーはデータを読み取り、JSON オブジェクトを作成します。
  • プロパティをフックしてresponseJSON、パーサーからキャッシュされたオブジェクトを読み取ります
  • ...またはストリーミングの方法によっては、新しい JSON オブジェクトが戻ってきたときに実行するブロックを定義する新しいプロパティを追加する必要がある場合があります (例: setReceivedJSONBlock:((^)(void (id JSON))block)。このブロックは、おそらくパーサーから送信されたデリゲート メソッドによってトリガーされます (例: <YAJLParserDelegate> -parserDidEndDictionary:)。

これを機能させることができたら、これを公開して他の人と共有することをお勧めします. これはかなりの数の人に役立つと思います。

于 2012-02-20T20:38:27.937 に答える