A.Kumawat A.Kumawat - 4 months ago 14
JSON Question

How to extract JSON array?

How to extract

JSON
data
dictionary
. I trying to many times but cant extract particular value. I get only first "business_category_name" but "business_details" under value "name" cant fetch. how it possible please help.

Thank you

My JSON Data



{
"status": [
{
"business_category_name": "Banks\/Credit Unions\/Landers",
"business_details": [
{
"img_url": "http:\/\/edutimeapp.com\/toshow\/chamber-of-commerc\/member-logo\/1464667619-pnc.jpg",
"name": "PNC Bank",
"des": "PNC offers a wide range of services for all our customers, from individuals and small businesses, to corporations and government entities",
"address": "",
"email": "andrea.kendall@pnc.com",
"phone": "260-422-5922",
"member_since": "2016-05-31",
"img_company": "http:\/\/edutimeapp.com\/toshow\/chamber-of-commerc\/member-logo\/1464667619-pnc.jpg",
"website": "",
"city": "Fort Wayne",
"state": "IN",
"zip": "46808"
}
]
},
{
"business_category_name": "Cleaning Services",
"business_details": [
{
"img_url": "http:\/\/edutimeapp.com\/toshow\/chamber-of-commerc\/uploads\/logo250.png",
"name": "tsst company",
"des": "rudurgg ",
"address": "2005 s calhoun ",
"email": "",
"phone": "2602496687",
"member_since": "2016-05-31",
"img_company": "http:\/\/edutimeapp.com\/toshow\/chamber-of-commerc\/uploads\/logo250.png",
"website": "",
"city": "fort wayne",
"state": "in",
"zip": "46825"
}
]
}
]
}


MY code



- (void)viewDidLoad {
[super viewDidLoad];
NSURLRequest *req=[[NSURLRequest alloc]initWithURL:[NSURL URLWithString:@"my url"]];
response =[[NSMutableData alloc]init];
[NSURLConnection connectionWithRequest:req delegate:self];
}

-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{
NSError *error;
NSLog(@"Error in receiving data %@",error);
NSMutableDictionary *json = [NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingMutableLeaves error:&error];
NSLog(@"response data %@",json);
NSArray *items = [json objectForKey:@"status"];
pass = [items valueForKey:@"business_category_name"];
NSLog(@"get category %@",pass);
}

Answer

If you want to fetch only one dictionary from array try this

NSArray *statuses = [json objectForKey:@"status"];

for(NSDictionary *status in statuses){
   NSString *bussiness_category=[status valueForKey:@"business_category_name"];

   NSString *name=[[[status objectForKey:@"business_details"] firstObject] valueForKey:@"name"];

}

If you want to fetch all try this.

Create a mutable array and add all the name inside it and load into tableview like below

NSMutableArray *names = [NSMutableArray new];

NSArray *statuses = [json objectForKey:@"status"];

for(NSDictionary *status in statuses){
   NSString *bussiness_category=[status valueForKey:@"business_category_name"];

   for(NSDictionary *details in [status objectForKey:@"business_details"]){
         NSString *name=[details valueForKey:@"name"];
         [names addObject:name];
   }

}

Hope it helps.

Comments