来自foursquare场地搜索的iphone解析响应

时间:2012-01-02 13:01:11

标签: iphone

我在Iphone工作。我已经完成了Iphone应用程序中foursquare集成所需的几乎所有工作。 现在我正在尝试在此应用程序中添加Venue搜索功能。

       code-:   

    NSMutableString *url=[[NSMutableString alloc] initWithFormat:@"https://api.foursquare.com/v2/venues/search?ll=26.8606200,75.761608&client_secret=XXXXXX&client_id=XXXXXX"];
    NSLog(@"%@",url);
    NSURL *url1=[[NSURL alloc] initWithString:[url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
    NSLog(@"%@",url1);
    NSDictionary *dicVenue=[self objectWithUrl:url1];   
    NSLog(@"%@",dicVenue);



This is my response for foursquare Venues search:-
of this line-- NSLog(@"%@",dicVenue);


  groups =     (
            {
        items =             (
                            {
                categories =                     (
                                            {
                        icon = "https://foursquare.com/img/categories/education/default.png";
                        id = 4bf58dd8d48988d1a8941735;
                        name = "General College & University";
                        parents =                             (
                            "Colleges & Universities"
                        );
                        pluralName = "General Colleges & Universities";
                        primary = 1;
                        shortName = "Other - Education";
                    }
                );
                contact =                     {
                };
                hereNow =                     {
                    count = 0;
                };
                id = 4ed0c8f48231b9ef88fe5f09;
                location =                     {
                    distance = 529;
                    lat = "26.857954980225713";
                    lng = "75.76602927296061";
                };
                name = "Banayan Tree School";
                stats =                     {
                    checkinsCount = 5;
                    tipCount = 0;
                    usersCount = 4;
                };
                verified = 0;
            },
                            {
                categories =                     (
                                            {
                        icon = "https://foursquare.com/img/categories/food/default.png";
                        id = 4bf58dd8d48988d1c4941735;
                        name = Restaurant;
                        parents =                             (
                            Food
                        );
                        pluralName = Restaurants;
                        primary = 1;
                        shortName = "Other - Food";
                    }
                );
                contact =                     {
                };
                hereNow =                     {
                    count = 0;
                };
                id = 4ea2e30ce3008f7d9243bfb5;
                location =                     {
                    city = Jaipur;
                    distance = 73;
                    lat = "26.8599860034498";
                    lng = "75.76141358915882";
                    state = Rajasthan;
                };
                name = Vyanjan;
                stats =                     {
                    checkinsCount = 2;
                    tipCount = 0;
                    usersCount = 2;
                };
                verified = 0;
            },
                            {
                categories =                     (
                                            {
                        icon = "https://foursquare.com/img/categories/arts_entertainment/movietheater.png";
                        id = 4bf58dd8d48988d180941735;
                        name = Multiplex;
                        parents =                             (
                            "Arts & Entertainment",
                            "Movie Theaters"
                        );
                        pluralName = Multiplexes;
                        primary = 1;
                        shortName = Cineplex;
                    }
                );
                contact =                     {
                };
                hereNow =                     {
                    count = 0;
                };
                id = 4eda5812be7be28337a34e1d;
                location =                     {
                    address = "Mansarovar, Jaipur, Rajasthan";
                    city = Jaipur;
                    distance = 1439;
                    lat = "26.849646795110605";
                    lng = "75.76927853413078";
                    state = Rajasthan;
                };
                name = "Galaxy Cinema Hall";
                stats =                     {
                    checkinsCount = 8;
                    tipCount = 2;
                    usersCount = 6;
                };
                verified = 0;
            },

请告诉我如何获得venueId,venueName,venueAddress等。

先生,请帮助我。我真的需要你的帮助。我在等你的明智回答。

提前谢谢。

1 个答案:

答案 0 :(得分:1)

您可以使用json解析器轻松解析值。请参阅以下代码,了解Foursquare场地搜索解析。

   -(NSMutableArray*)returnVenuesDetails:(NSDictionary*)result{
    NSArray *groupsArray = [[(NSDictionary*)result objectForKey:@"response"] objectForKey:@"groups"];

                NSArray *itemsArray;
                if([groupsArray count] > 0){
                    itemsArray = [[groupsArray objectAtIndex:0] objectForKey:@"items"];

                    NSMutableArray *resultArray = [NSMutableArray array];
                    if([itemsArray count] > 0){
                        for (int i=0; i<[itemsArray count]; i++) {    

                            NSMutableDictionary *resultDictionary=[[NSMutableDictionary alloc] init];

                            NSString *venueId = [[itemsArray objectAtIndex:i] objectForKey:@"id"];
                            NSString *venueName = [[itemsArray objectAtIndex:i] objectForKey:@"name"];
                            [resultDictionary setObject:venueId forKey:@"venueId"];
                            [resultDictionary setObject:venueName forKey:@"venueName"];

                            //Get Stats details
                            NSDictionary *stats = [[itemsArray objectAtIndex:i] objectForKey:@"stats"];
                            NSString *checkinsCount = [stats objectForKey:@"checkinsCount"];
                            NSString *tipCount = [stats objectForKey:@"tipCount"];
                            NSString *usersCount = [stats objectForKey:@"usersCount"];

                            [resultDictionary setObject:checkinsCount forKey:@"checkinsCount"];
                            [resultDictionary setObject:tipCount forKey:@"tipCount"];
                            [resultDictionary setObject:usersCount forKey:@"usersCount"];

                            NSArray *catArray = [[itemsArray objectAtIndex:i] objectForKey:@"categories"];

                            if([catArray count]> 0){
                                //Get Category List
                                NSDictionary *categoryDic = [catArray objectAtIndex:0];
                                NSLog(@"categoryDic ----- = %@",categoryDic);

                                [resultDictionary setObject:[categoryDic objectForKey:@"icon"] forKey:@"icon"];
                                [resultDictionary setObject:[categoryDic objectForKey:@"id"] forKey:@"catId"];
                                [resultDictionary setObject:[categoryDic objectForKey:@"name"] forKey:@"catName"];

                            }
                            //Add dictionary into Array
                            [resultArray addObject:resultDictionary];
                        }


                        //Use this resultArray for display the Search details
                        for (int i=0; i<[resultArray count]; i++) { 
                            NSString *venueName=[[resultArray objectAtIndex:i] objectForKey:@"venueName"];
                            NSString *checkins=[[resultArray objectAtIndex:i] objectForKey:@"checkinsCount"];

                            NSLog(@"venueName = %@",venueName);
                            NSLog(@"checkins = %@",checkins);

                        }
                    }
           return resultArray; 
                }
         return [NSMutableArray array];
        }