2014-02-24 2 views
0

에 JSON을 구문 분석하고 싶 나는 배열에 JSON 변환하고 선택기보기로 채우려 .. 다음은 JSON 결과입니다 ..여기 내 아래 코드는 배열

"[{\"ID_PROJECT\":427,\"NM_PROJECT\":\"TST1\"},{\"ID_PROJECT\":450,\"NM_PROJECT\":\"TST2\"},{\"ID_PROJECT\":516,\"NM_PROJECT\":\"TST3\"},{\"ID_PROJECT\":563,\"NM_PROJECT\":\"TST4 \"}]"

및 내가 여기

TST1 
TST2 
TST3 
. 
. 
. 

에서 원하는 것은 내 코드입니다

(void)viewDidLoad 
{ 
[super viewDidLoad]; 

NSString *post =[[NSString alloc] initWithFormat:@"username=%@",[self.projectpicker dataSource]]; 
//NSString *pickername = [self.projectpicker dataSource]; 
NSString *key = @"Test"; 

//NSString *encrypteduname = [AESCrypt encrypt:pickername password:key]; 


NSString *tempurl = @"http://myurllink"; 

NSURL *url = [NSURL URLWithString:tempurl]; 

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




NSString *postLength = [NSString stringWithFormat:@"%lu", (unsigned long)[postData length]]; 
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; 
[request setURL:url]; 
[request setHTTPMethod:@"POST"]; 
[request setValue:postLength forHTTPHeaderField:@"Content-Length"]; 
[request setValue:@"application/projectpicker" forHTTPHeaderField:@"Accept"]; 
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; 
[request setHTTPBody:postData]; 


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


//Make synchronous request 
urlData = [NSURLConnection sendSynchronousRequest:urlRequest 
           returningResponse:&response 
              error:&error]; 
if ([response statusCode] >= 200 && [response statusCode] < 300) 
{ 
NSString *responseData = [[NSString alloc]initWithData:urlData encoding:NSUTF8StringEncoding]; 
    NSLog(@"Error: %@", responseData); 
    NSData *jsonData = [[NSData alloc] initWithContentsOfFile:responseData];//response data 

    NSDictionary *object = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:nil]; 

} else { 
    if (error) NSLog(@"Error: %@", error); 
} 
// Construct a String around the Data from the response 

// Do any additional setup after loading the view. 

} 
+2

문제가 무엇인지 설명하십시오 - 작동하지 않는 것이 있습니까? – Wain

+0

그 모든 것들을 담고있는 것들이 정말로 여기에있다면, 여기에 올리기 위해 놓은 것이 아니라, 그걸 가지고 많은 운을 가지지 않을 것입니다.'''그것은 하나의 모 놀리 식 자바 스크립트 문자열입니다. JSON으로 인코딩 된 객체 배열이 아닙니다. –

+0

동일한 질문을 두 번 이상 게시하지 마십시오. 답변을받지 못한 경우 기존 질문을 수정하십시오. – andyb

답변

0

JSONObjectWithData의 결과는 사전 또는 배열입니다. JSON 문서에 따라 다릅니다. 네 개의 내부 사전이있는 배열처럼 보이는데 각 사전에는 두 개의 키 ID_PROJECT 및 NM_PROJECT가 있습니다.

서버 에서받은 NSData를 직접에 JSONObjectWithData에 전달하십시오. 으로 바꾸지 마십시오.

NSData *jsonData = [[NSData alloc] initWithContentsOfFile:responseData]; 

은 분명한 말도 안됩니다. 문자열로 변환 된 데이터를 성공한 것으로 받아 들여이를 읽는 파일의 경로로 사용합니다. 작동하지 않을 것입니다. 그렇습니까? urlData를 직접 전달하십시오.

실제로 결과가 배열 (isKindOfClass 사용)인지 확인한 후 원하는대로 가져올 수 있습니다.

+0

아래 오류가 발생했습니다 : NSString * '유형의 매개 변수에'NSDATA * _Strong '을 보내는 호환되지 않는 포인터 유형' –

관련 문제