Reputation: 103
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
{
"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": "[email protected]",
"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"
}
]
}
]
}
- (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);
}
Upvotes: 0
Views: 125
Reputation: 21
here dataFromApi is string JSON format;
NSData *objectData = [dataFromApi dataUsingEncoding:NSUTF8StringEncoding];
id collection = [NSJSONSerialization JSONObjectWithData:objectData options:0 error:&error];
after receiving collection you can find data using key value pair.
ex = string add = collection[@"name"];
Upvotes: 0
Reputation: 12719
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.
Upvotes: 0
Reputation: 27438
You can do something like,
NSArray *items = [json objectForKey:@"status"];
NSDictionary *firstObjOfItems = [items objectAtIndex:0];
NSString *business_category_name = [firstObjOfItems valueForKey:@"business_category_name"];
NSArray *business_details_Array = [firstObjOfItems objectForKey:@"business_details"];
NSDictionary *first_Object_of_business_details = [business_details_Array objectAtIndex:0]
;
NSString *name = [first_Object_of_business_details valueForKey:@"name"];
NSLog(@"name : %@",name);
You can fetch other parameters likewise. You should use for loop to go through every object. It is just example that how to reach at end element in your json data.
Hope this will help :)
Upvotes: 1