Разработване на JSON в Objective-C - objective-c, json

Опитвам се да анализирам JSON на този URL адрес:

http://maps.googleapis.com/maps/api/geocode/json?address=canada&sensor=false

в Objective-C. Опитвам се да получа североизточната ширина под „граници“ и това е кодът, който съм написал, за да опитам и да направя това (feed е NSDictionary обект):

NSArray *results = [feed objectForKey:@"results"];
NSDictionary *firstResult = [results objectAtIndex:0];
NSArray *geometry = [firstResult objectForKey:@"geometry"];
NSDictionary *firstGeo = [geometry objectAtIndex:0];
NSArray *bounds = [firstGeo objectForKey:@"bounds"];
NSDictionary *northeast = [bounds objectAtIndex:0];
NSString *neLat = [[NSString alloc] initWithString:[northeast objectForKey:@"lat"]];

Въпреки че той компилира добре и JSON данните са валидни, когато го пускам, получавам тази грешка:

[__NSCFDictionary objectAtIndex:]: неразпознат селектор, изпратен до екземпляр 0xa672390 2012-02-24 01: 32: 06.321 Гео [570: 11603] * Приложение за прекратяване поради изключено изключение "NSInvalidArgumentException", причина: "- [__ NSCFDictionary objectAtIndex:]: неразпознат селектор, изпратен до инстанция 0xa672390"

Не знам защо това се случва, тъй като успях long_name преди ... всяка помощ е високо оценена :)

Благодаря предварително!

Отговори:

2 за отговор № 1

Най- geometry и bounds вече са речници.

     "geometry" : {    // <-- a dictionary!
"bounds" : {   // <-- also a dictionary!
"northeast" : {
"lat" : 83.1150610,
"lng" : -52.62040200000001
},

Така че трябва да пишете

NSDictionary *geometry = [firstResult objectForKey:@"geometry"];
NSDictionary *bounds = [geometry objectForKey:@"bounds"];
NSDictionary *northeast = [bounds objectForKey:@"northeast"];

1 за отговор № 2

Проверете следното твърдение.

NSArray *geometry = [firstResult objectForKey:@"geometry"];

Изглежда за geometry, не връща NSArray. Връща се NSDictionary