0

我无法解析 Google Geocoding API 响应。这是方法:

-(void) findLatLong:(NSString*) adr{

NSString *encodedAddress = (NSString *) CFURLCreateStringByAddingPercentEscapes(
                                                                                NULL, (CFStringRef) adr,
                                                                                NULL, (CFStringRef) @"!*'();:@&=+$,/?%#[]",
                                                                                kCFStringEncodingUTF8 );

NSString* searchURL = [NSString stringWithFormat:@"http://maps.googleapis.com/maps/api/geocode/json?address=%@&sensor=true",encodedAddress];
NSError* error = nil;
NSURLResponse* response = nil;
NSMutableURLRequest* request = [[[NSMutableURLRequest alloc] init] autorelease];

NSURL* URL = [NSURL URLWithString:searchURL];
[request setURL:URL];
[request setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData];
[request setTimeoutInterval:30];

NSData* data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];

if (error){
    NSLog(@"Error performing request %@", searchURL);
    return;
}

NSString *jsonString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSDictionary *results = [jsonString objectFromJSONString];
// to be added
}

我可以从 Geococing API 获取响应 json 字符串。当我用 JSonKit 解析它时,我有两个键。这些是resultstatus。但是当我更进一步如下:

[[results objectForKey:@"results"] objectForKey:@"address_components"]

我总是得到空集。有什么建议吗?

我正在使用 XCode 4.2.1

4

0 回答 0