2014-11-03 2 views
-1

다음은 내가 편집 한 코드입니다. 제발 도와주세요. 목록보기에서 데이터를 표시하려고했습니다.IOS 개발, 내 NSData를 NSJSONSerialization으로 변환 할 수 없습니다. JSONObjectWithData :

 NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; 


    NSData *urlData=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; 
    NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url 
               cachePolicy:NSURLRequestReturnCacheDataElseLoad 
              timeoutInterval:30]; 

    if ([response statusCode] >= 200 && [response statusCode] < 300) 
    { 
     NSString *responseData = [NSJSONSerialization JSONObjectWithData:urlData 
                    options:NSJSONReadingAllowFragments error:&error]; 
      NSLog(@"responseData : %@", responseData); 
     NSArray *entries = [NSJSONSerialization JSONObjectWithData:[responseData dataUsingEncoding:NSUTF8StringEncoding] 
                  options:0 error:&error]; 


When I keep a log for NSURL it is navigating to the web service and gives me a result that I need, but the problem arises at responseData 
+2

그래서 '오류'는 무엇이라고 말합니까? –

+0

예, 오류도 유용합니다. 또한, 무슨 일이 일어나고 있습니까? 당신은 무엇이 잘못되었는지 말하지 않았습니다. – Fogmeister

+0

그리고 코드가 엉망이 된 것 같습니다. 'responseData'는 실제로 NSString입니까 ??? –

답변

-1

데이터를 문자열로 변환 한 다음 다시 데이터로 변환합니다.

그냥 당신이 처음에 얻을 데이터 ...

urlData = [NSURLConnection sendSynchronousRequest:urlRequest 
           returningResponse:&response 
              error:&error]; 

if ([response statusCode] >= 200 
    && [response statusCode] < 300) 
{ 
    NSArray *entries = [NSJSONSerialization JSONObjectWithData:urlData 
                 options:NSJSONReadingAllowFragments 
                 error:&error]; 

    // do something with the JSON object 
} 

이것은 당신이해야 할 모든해야을 사용합니다.

편집

확인이 작업을 수행하고 말씀을 다시보고 ...

urlData = [NSURLConnection sendSynchronousRequest:urlRequest 
           returningResponse:&response 
              error:&error]; 

if ([response statusCode] >= 200 
    && [response statusCode] < 300) 
{ 
    NSString *theJSONString = [[NSString alloc] initWithData:urlData encoding:NSUTF8StringEncoding]; 

    NSLog(@"The JSON is... %@", theJSONString); 
} 

이 적어도 우리에게 정확히 통해 오는 무엇의 아이디어를 줄 것이다.

+0

위 코드를 사용하면 결과는 2014-11-03 12입니다 : 02 : 23.983 TimesheetIOS [24108 : 4038141] responseData : (null) 2014-11-03 12 : 02 : 23.984 TimesheetIOS [24108 : 4038141] 오류 : 도메인 오류 NSCocoaErrorDomain 코드 = 3840 "작업을 완료 할 수 없습니다. (코코아 오류 3840.) "(JSON 텍스트가 배열 또는 객체와 옵션으로 시작되지 않아 조각을 설정할 수 없습니다.) UserInfo = 0x7d1253c0 {NSDebugDescription = JSON 텍스트가 배열 또는 객체로 시작되지 않아 조각을 설정할 수 없습니다.} – user3440782

+0

@ user3440782 api에서 가져온 JSON 만 표시하십시오. JSON을 인쇄하십시오. – Fogmeister

+0

@ user3440782 새 코드를 시도해보십시오. 우리가 무슨 일이 일어나고 있는지 진단 할 수 있도록 마지막에 넣은 디버깅 내용을 시도해보십시오. – Fogmeister