2012-10-30 4 views
0

제 3 자 서비스에 전달 된 우편 번호에서 반환 된 간단한 JSON 배열이 있습니다. 해결할 수있는 connectionDidFinishLoading 오류

http://api.geonames.org/findNearbyPostalCodes?postalcode=94115&country=US&radius=5&username=frequentz

나는 결과를 역 직렬화하려고하고 내가 잘못 무슨 일이 일어나고 있는지 잘 모르겠어요 알 수없는 오류가 발생합니다.

여기는 제 연결의 DidFinishLoading 메서드입니다.이 메서드는 오래된 것으로서 발생하지만 항상 실패합니다 ... 마지막 경우에 오류가 발생합니다. 아이디어?

-(void) connectionDidFinishLoading:(NSURLConnection *)connection { 

NSLog(@"connectionDidFinishLoading..."); 

self.zipCodes = [NSMutableArray array]; 

NSError *error = nil; 

id jsonObject = [NSJSONSerialization JSONObjectWithData:receivedData options:NSJSONReadingAllowFragments error:&error]; 

if (jsonObject != nil && error == nil) { 

    NSLog(@"Successfully deserialized..."); 

    if ([jsonObject isKindOfClass:[NSDictionary class]]) { 

     NSDictionary *deserializedDictionary = (NSDictionary *)jsonObject; 
     NSLog(@"Deserialized JSON Dictionary = %@", deserializedDictionary); 

     for (NSDictionary *item in jsonObject) { 

      NSString *city = [item objectForKey:@"adminName2"]; 
      NSString *stateAbbreviation = [item objectForKey:@"adminCode1"]; 
      NSString *postalCode = [item objectForKey:@"postalCode"]; 
      NSString *distance = [item objectForKey:@"distance"]; 
      NSString *country = [item objectForKey:@"country"]; 
      NSString *stateName = [item objectForKey:@"stateName"]; 

      ZipCodes *zipCode = [[ZipCodes alloc] initWithName:city stateAbbrev:stateAbbreviation postalCode:postalCode distanceFromGPSZip:distance country:country stateFullName:stateName]; 

      [self.zipCodes addObject:zipCode]; 
     } 
    } 
    else if ([jsonObject isKindOfClass:[NSArray class]]){ 
     NSArray *deserializedArray = (NSArray *)jsonObject; 
     NSLog(@"Deserialized JSON Array = %@", deserializedArray); 
    } 
    else { 
     /* Some other object was returned. We don't know how to deal 
     with this situation as the deserializer returns only dictionaries or arrays */ 
    } 
} 
else if (error != nil){ 
    NSLog(@"An error happened while deserializing the JSON data."); 
} 
} 
+0

당신이 NSLog 할과 된 JSONObject가 저장되는 정보를 볼 수 :이 자신의 예를 들어 URL입니까? – yeesterbunny

답변

2

잘못된 서비스를 사용하고있는 것 같습니다. findNearbyPostalCodesJSON .... JSON 서비스를 최대한 멀리 사용하려면 웹 사이트에서 확인하십시오.

http://api.geonames.org/findNearbyPostalCodesJSON?postalcode=8775&country=CH&radius=10&username=demo

+0

@yeestyerbunny, jsonObject는 null이고 길이도 기록했지만 제로 였지만 URL은 내가 찾고있는 것을 정확하게 얻습니다. 흠 ... – brianhevans

+0

Ric, 나는 그것을 먼저 시험해 보았다. 같은 차이. 나는 그런데 당신에게 좋은 소식이 있습니다. ... – brianhevans

+0

@Ric, 방금 JSON을 시도했고 데이터가 있습니다. :) – brianhevans

관련 문제