2014-07-13 2 views
-2

NSURLSessionNSURLSessionDataTask을 사용하여 게시물 요청을 보낸 다음 응답을 받고이를 NSString 변수에 저장 한 다음 로그에 기록합니다. 내 기능은 현재 다음과 같습니다 : 나는 그것이 디버깅 터미널에서 다음을 반환 요청을 실행하면NSString에서 NSJSONSerialization을 사용하여 Json을 구문 분석하는 방법

NSURLSessionConfiguration *defaultConfigObject = [NSURLSessionConfiguration defaultSessionConfiguration]; 
    NSURLSession *defaultSession = [NSURLSession sessionWithConfiguration: defaultConfigObject delegate: nil delegateQueue: [NSOperationQueue mainQueue]]; 

    NSURL * url = [NSURL URLWithString:@"http://mysite.org/mobile_app/studentregister.php"]; 
    NSMutableURLRequest * urlRequest = [NSMutableURLRequest requestWithURL:url]; 
    NSString * params = [NSString stringWithFormat:@"username=%@&displayname=%@&password=%@&passwordc=%@&email=%@&teachercode=%@", username, displayname, password, passwordc, email, teacherCode]; 
    [urlRequest setHTTPMethod:@"POST"]; 
    [urlRequest setHTTPBody:[params dataUsingEncoding:NSUTF8StringEncoding]]; 

    NSURLSessionDataTask * dataTask =[defaultSession dataTaskWithRequest:urlRequest 
    completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { 
    NSLog(@"Response:%@ %@\n", response, error); 
    if(error == nil) 
    { 
    NSString * text = [[NSString alloc] initWithData: data encoding: NSUTF8StringEncoding]; 
    NSLog(@"Json = %@",text); 

    } 

    }]; 
    [dataTask resume]; 

는 :

Json = {"userCharLimit":"Your username must be between 5 and 25 characters in length"}{"displaynameCharLim":"Your displayname must be between 5 and 25 characters in length"}{"passLimit":"Your password must be between 8 and 50 characters in length"}{"emailInvalid":"Not a valid email address"}{"teacherCodeLength":"Your teacher code is not 5 to 12 characters"} 

어떻게 NSJSONSerialization를 사용하여이 구문 분석 알 수 있습니까? 이 심지어 구문 분석 할 수 또는 일부 서식 PHP에서 할 수 있습니까? 이것은 내 첫 번째 웹 서비스입니다.

답변

1

NSJSONSerialization은 NSString이 아닌 NSData를 사용합니다.

당신의 라인을 교체

... 이런 식으로 뭔가로

NSString *text = [[NSString alloc] initWithData... 

...

NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil]; 

사전 객체는 이제 JSON의 표현 일 것이다.

는 JSON은 또한 :-)

하지만 올바른되는에 따라,이 전에 수백 번을 요청하고있다.

+0

나는 사전이 없습니다. – JohnnyWineShirt

0
NSMutableDictionary *json=[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:&error]; 
관련 문제