Objective-CでJSONを扱う.NSJSONSerialization編

iOS5以降はTwitter統合の関係上NSJSONSerializationクラスが追加されたのでJSONがぐっと楽に扱えるようになった.

以下のコードはInstagramにアクセスしたときに書いた実験用のコードの一部.

NSString *url = @"SOME_URL";
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:[NSURL URLWithString:url]];
    
NSData *jsonData = [NSURLConnectionsendSynchronousRequest:request returningResponse:nil error:nil];
    
NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:jsonData
                                                               options:NSJSONReadingAllowFragments error:nil];

    if (!dictionary) {
        NSLog(@"error");
    }else{
        NSArray *datas = [dictionary objectForKey:@"KEY"];
        
        for (NSDictionary *data in datas) {
            NSLog(@"%@", [data objectForKey:@"KEY"]);
        
            //Do something ...

        }
    }

今回は同期リクエスト(NSURLConnectionsendSynchronousRequest)を使っているのでレスポンスが帰ってくるまでアプリケーション全体の処理が止まってしまう.その点は注意.

JSONの解析結果がNSDictionary形式で返却される. JSONがネストされていた場合,解析結果もネストされている.

datasからKEYをとりだす.for inを使って繰り返し処理をすることが多いんじゃないかな?