0

Facebookの友達リストを表示する必要があるプロジェクトに取り組んでいます。応答を取得するために必要なすべてのコーディングを行いましたが、応答は次のようになります

 {"data":[{"name":"Ramprasad Santhanam","id":"586416887"},{"name":"Karthik Bhupathy","id":"596843887"},{"name":"Anyembe Chris","id":"647842280"},{"name":"Giri Prasath","id":"647904394"},{"name":"Sadeeshkumar Sengottaiyan","id":"648524395"},{"name":"Thirunavukkarasu Sadaiyappan","id":"648549825"},{"name":"Jeethendra Kumar","id":"650004234"},{"name":"Chandra Sekhar","id":"652259595"}

name と id を 2 つの異なる配列に保存する方法を教えてください。

どんな助けでも大歓迎です。

4

4 に答える 4

3

以下に、html応答がどのように解析されるかを示します。そこに私はFacebookの友達を取得しています。

- (void)fbGraphCallback:(id)sender 

    {

    if ( (fbGraph.accessToken == nil) || ([fbGraph.accessToken length] == 0) )


 {

            //restart the authentication process.....
    [fbGraph authenticateUserWithCallbackObject:self andSelector:@selector(fbGraphCallback:) 
                         andExtendedPermissions:@"user_photos,user_videos,publish_stream,offline_access,user_checkins,friends_checkins"];

} 
else 

{

    NSLog(@"------------>CONGRATULATIONS<------------, You're logged into Facebook...  Your oAuth token is:  %@", fbGraph.accessToken);
    FbGraphResponse *fb_graph_response = [fbGraph doGraphGet:@"me/friends" withGetVars:nil];// me/feed 
    //parse our json
    SBJSON *parser = [[SBJSON alloc] init];
    NSDictionary *   facebook_response = [parser objectWithString:fb_graph_response.htmlResponse error:nil]; 
    //init array 
    NSMutableArray * feed = (NSMutableArray *) [facebook_response objectForKey:@"data"];
    //  NSMutableArray *recentFriends = [[NSMutableArray alloc] init];
     arr=[[NSMutableArray alloc]init];
    //adding values to array
    for (NSDictionary *d in feed) 
    {
        [arr addObject:d];


    }

    //NSLog(@"array is %@ ",arr);
    [fbSpinner stopAnimating];
    [fbSpinner removeFromSuperview];

    [myTableView reloadData];


}

}
于 2012-08-01T05:14:02.940 に答える
2

これは、取得している json 応答です。したがって、この文字列を Objective-C オブジェクトに変換するには、JSON パーサーが必要です。iOS アプリでは、 json-frameworkのようなライブラリを使用できます。このライブラリを使用すると、JSON を簡単に解析し、辞書 / 配列から json を生成できます (JSON が構成されているのは実際にはすべてです)。

SBJson docs から: JSON 解析後、この変換が得られます

JSON は、次の方法で Objective-C 型にマップされます。

  • null -> NSNull
  • 文字列 -> NSString
  • 配列 -> NSMutableArray
  • オブジェクト -> NSMutableDictionary
  • true -> NSNumber の -numberWithBool:YES
  • false -> NSNumber の -numberWithBool:NO
  • 19 桁までの整数 -> NSNumber の -numberWithLongLong:
  • 他のすべての数値 -> NSDecimalNumber
于 2012-08-01T05:08:55.213 に答える
2

HTML ではなく、JSON のように見えます。json(質問にI seeのタグを付けたので、おそらくすでにこれを知っていたでしょう。)

かなり古いOSリリースをサポートする必要がない限り、他の人がこれを行うためにサードパーティのライブラリを推奨している理由はよくわかりません. Apple の組み込みNSJSONSerialization クラスを使用するだけです。

于 2012-08-01T05:10:22.910 に答える
1

これは HTML ではありません。これはJSONです。これにはJSON パーサーが必要です。

JSON パーサーは通常、文字列から NSDictionary または NSArray を作成します。私の実装では、次のようにします。

NSMutableArray *names = [NSMutableArray array];
NSMutableArray *ids = [NSMutableArray array];

NSDictionary *root = [responseString parseJson];
NSArray *data = [root objectForKey:@"data"];
for (NSDictionary *pair in data)
{
    [names addObject:[pair objectForKey:@"name"]];
    [ids addObject:[pair objectForKey/@"id"]];
}

NSJSONSerializationiOS の最近のバージョンには、JSON の解析とシリアル化を処理する新しい Foundation クラス が含まれています。

于 2012-08-01T05:08:41.290 に答える