2012-12-10 2 views
-1

다음 코드가 있습니다. 내 문제는 간단한 JSON 응답을 구문 분석하려고하지만 작동하지 않는 것 같습니다. JSON 응답은 다음과 같습니다 : I이 (가) JSON 반향 다음을 사용iOS에서 JSON이 파싱되지 않습니까?

{"response":"session_exists"} 

: 내가 알고 싶은 모든 응답이 동일 무엇

$json_output = array('response' => 'session_exists'); 

입니다. session_exists이거나 성공한 것입니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

전 JSON에서 일한 적이 없으므로 누구든지 나를 도울 수 있다면이 프로젝트에 도움이 될 것입니다.

감사합니다. 당신이이하는 말처럼 JSON 보이는 경우

- (IBAction)login:(id)sender { 
    NSURL *url = [NSURL URLWithString:@"http://localhost/lookin_chill/Website/api/api_account.php?action=login&[email protected]&password=pass123"]; 
    NSURLRequest *request = [NSURLRequest requestWithURL:url]; 
    NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self]; 

    [connection start]; 
} 

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response 
{ 
    data = [[NSMutableData alloc] init]; 
} 

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)theData 
{ 
    [data appendData:theData]; 
} 

- (void)connectionDidFinishLoading:(NSURLConnection *)connection 
{ 
    [UIApplication sharedApplication].networkActivityIndicatorVisible = NO; 

    responses = [NSJSONSerialization JSONObjectWithData:data options:nil error:nil]; 

    NSLog(@"%@", responses); 

    NSLog(@"%@", [[responses objectAtIndex:0] objectForKey:@"response"]); 
} 
+1

은 무엇이고 시도 작품 'NSLog (@ "% @", responses)의 출력; –

답변

2

, 다음 응답은 사전이 아니라 배열이됩니다, 그래서 당신은 objectAtIndex를 호출 할 수 없습니다 : 0 그것을. 로그는 다음과 같아야합니다.

NSLog (@ "% @", [responsesObjectForKey : @ "response"]));

+0

고맙습니다! 이제 작동합니다! – Alec

+0

@Alec - JSON은 NSDictionary와 NSArrays가 혼합 된 것으로 해석되므로 JSON 소스를 읽고 기대해야 할 것이 있는지 확인해야합니다 (그렇지 않으면'isKindOfClass'를 사용하여 런타임 검사를 수행하여 너)있어. –

+0

@Alec, 나는 Hot Licks의 말에 두 번째. 보통 NSJSONSerialization 메서드를 사용하여 로그를 가져와 내가 돌아 오는 클래스를 확인합니다. – rdelmar

0

알렉 난 그냥 내 파서 그것을 테스트하고 잘 단지있는 NSDictionary에 대한 응답을 변환하고이 난 그냥 문자열

  NSString *string [email protected]"{\"response\":\"session_exists\"}"; 
     JSONDecoder *value =[string objectFromJSONString]; 
     NSDictionary *dictionary = (NSDictionary *)value; 
     NSLog(@"value %@",[dictionary objectForKey:@"response"]); 

와 그것을 시도하고 값이

  session_exists 
관련 문제