2013-09-30 5 views
17
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 
[manager GET:@"http://example.com/resources.json" parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) { 
    NSLog(@"JSON: %@", responseObject); 
} failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
    NSLog(@"Error: %@", error); 
}]; 

としてresponseObjectを使用します。 jsonの特定のキーの値を取得したいので、responseObjectNSDictionaryとしたいと思います。これは私がしようとしていたものです。AFNetworking 2.0 - これはAFNetworking 2.0で<code>GET</code>要求を送信する<a href="https://github.com/AFNetworking/AFNetworking#get-request" rel="noreferrer">recommended way</a>あるNSDictionaryの

NSError *jsonError = nil; 
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:(NSData *)responseObject options:kNilOptions error:&jsonError]; 

それは動作しませんでした:

私は responseObjectに特定のキーの値を得ることができる方法
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFDictionary bytes]: unrecognized selector sent to instance 0xa048120' 

?デフォルトでは

答えて

30

AFJSONResponseSerializerインスタンスへAFHTTPRequestOperationManagerセットresponseSerializer、そうresponseObjectはすでに解析されたJSON(あなたのケースでは、それはあなたが言ったことによるNSDictionaryなります)です。

NSString *value = responseObject[@"someKey"]; 
+0

AFNetworkingを使用して同様の問題が発生しました。私は解析されたJSONオブジェクトを取得し、後で使用するために配列に格納する必要があります。構文解析されたJSONは文字列を値とする辞書ですか? – noobsmcgoobs

5

応答オブジェクトが既に辞書です:あなたは辞書を使用したいと

すると、ちょうどそれを使用! AFNetworkingがそれを処理しました。

+0

@Irfan:あなたのタイポグラフィーは、読むのが難しいと思うのですが、私は辞書に入るためにKVCを使うことはできません。 – vikingosegundo

関連する問題