Reputation: 85
Im fetching JSON data from this link.
I want to store all the required elemnts like image-medium title etc in aDetail
object of Detail
class but its giving error.
Here is my code:
SBJsonParser *parser = [[SBJsonParser alloc] init];
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.krsconnect.no/community/api.html?method=event&appid=620&eventid=15946&affecteddate=1310515200000"]];
NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSString *json_string = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding];
NSDictionary *object = [parser objectWithString:json_string error:nil];
NSArray *results = [parser objectWithString:json_string error:nil];
for (int i=0; i<[results count]; i++) {
NSDictionary*dictOne=[results objectAtIndex:i];
Detail *aDetail = [[Detail alloc] initWithDictionary:[results objectAtIndex:i]];
[appDelegate.descriptionArray addObject:aDetail];
}
Upvotes: 0
Views: 219
Reputation: 2076
NSString *json_string = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding];
NSError *error;
SBJSON *json = [[SBJSON new] autorelease];
id obj = [json objectWithString:json_string error:&error];
if ([obj isKindOfClass:[NSDictionary class]]) {
[appDelegate.descriptionArray addObject:obj];
}else if ([obj isKindOfClass:[NSArray class]]) {
for (NSDictionary *aDetail in obj) {
[appDelegate.descriptionArray addObject:aDetail];
}
}
Upvotes: 0
Reputation: 706
that's not how you use SBJSon. Try this:
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.krsconnect.no/community/api.html?method=event&appid=620&eventid=15946&affecteddate=1310515200000"]];
NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSString *json_string = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding];
NSDictionary *object = [json_string JSONValue];
Upvotes: 1