Как распечатать вывод json на консоли

#iphone #json #facebook-graph-api

#iPhone #json #facebook-graph-api

Вопрос:

Я использую Facebook graph API и получаю его результат в формате json.. Я могу напечатать некоторые результаты, но запутался в других..

   application =         {
        id = 142759389130183;
        name = iphonemini;
    };
    caption = "widevision.co.in";
    "created_time" = "2011-06-14T07:56:38 0000";
    from =         {
        id = 100001507678574;
        name = "Widevision Dev";
    };
    icon = "http://www.facebook.com/images/icons/hidden.gif";
    id = "100001507678574_173203589406562";
    link = "http://widevision.co.in/";
    message = "Good Afternoon";
    name = "Check It out";
    type = link;
    "updated_time" = "2011-06-14T07:56:38 0000";
},
  

Я могу распечатать этот значок, идентификатор, ссылку с помощью этого кода

 FbGraphResponse *fb_graph_response = [fbGraph doGraphGet:@"me/feed" withGetVars:nil];


    NSLog(@"method called");
    //parse our json
    SBJSON *parser = [[SBJSON alloc] init];
    NSDictionary *facebook_response = [parser    objectWithString:fb_graph_response.htmlResponse error:nil];    

    [parser release];

    //NSString *feed;
    //  NSString *feed2;
    NSMutableArray *feed =(NSMutableArray *) [facebook_response objectForKey:@"data"];

    //  NSMutableArray *feed1=(NSMutableArray *) [feed valueForKey:@"type"];


    NSLog(@"Feed %@" ,feed );

    NSLog(@"Message is %@ ",[feed valueForKey:@"icon"]);

    NSLog(@"Name is %@",[feed valueForKey:@"name"]);
  

.. также получите это

 from ={
    id= ;
    name = "";
    }


NSMutableArray *streams = (NSMutableArray *)[feed valueForKey:@"from"];



    // loop over all the stream objects and print their titles
        int index;
        NSMutableDictionary *stream;

        for (index = 0; index < [feed count];index  ) {
            stream = (NSMutableDictionary *)[streams objectAtIndex:index];



            NSLog(@"Message is %@:",[stream valueForKey:@"name"]);

        }
  

Но как я могу проанализировать это comments = { }....

 {
        application =         {
            id = 136664723060869;
            name = Iphoneapp;
        };
        caption = "bit.ly";
        comments =         {
            count = 2;
            data =             (
                                {
                    "created_time" = "2011-06-14T07:39:45 0000";
                    from =                     {
                        id = 100001507678574;
                        name = "Widevision Dev";
                    };
                    id = "100001507678574_164163733643881_1822049";
                    likes = 1;
                    message = hi;
                },
                                {
                    "created_time" = "2011-06-14T08:17:31 0000";
                    from =                     {
                        id = 100001507678574;
                        name = "Widevision Dev";
                    };
                    id = "100001507678574_164163733643881_1822143";
                    message = hmmm;
                }
            );
        };
  

пожалуйста, помогите

Ответ №1:

Что ж, я вижу здесь четкий объект json. Я бы взял пример SBJSON, где весь JSON анализируется в объект NSDictionary, где application, caption, comments находятся ключи. Объект для комментария снова формирует словарь с ключами; count, data . Как только вы доберетесь до data , у вас будет массив всех данных, и поэтому этот массив содержит несколько словарей. Получение каждого словаря в массиве данных должно решить вашу проблему. Желаю удачи.

Комментарии:

1. У меня возникла проблема в методе post … как я могу установить сообщение и идентификатор в комментарии