2013-07-25 3 views
1

Java Restful WebServices에서 JSON 데이터를 생성했으며 Objective C 코드를 작성해야합니다. JSON 데이터를 사용하고 Objective C에 통합하려면 어떻게해야합니까? IDE에서 로컬 URL을 생성했습니다. 어떻게 생성 된 JSON 데이터를 다른 컴퓨터에서 사용할 수 있습니까? 감사합니다.Objective C에서 Java로 생성 된 JSON 데이터를 읽는 방법은 무엇입니까?

+0

웹 서비스가 유효한 JSON을 생성하는 동안 서버가 Java 코드, C#, node.js 등을 실행하는지 여부에 대해 걱정할 필요가 없습니다. –

+0

응답 해 주셔서 감사합니다. 유일한 문제는 생성 된 JSON 데이터를 Objective C로 호출하는 것입니다. JAVA에서 작업하고 공동 작업자는 Objective C에서 작업하고 있기 때문에 Objective C에서 구현하는 데 문제가 있습니다. 저는 PC에서 일하고 있습니다. Mac에서 일하고 있습니다. – Chhewang

답변

1

웹 서비스에서 JSON을 검색하려면 NSURLConnection을보십시오. 그런 다음 NSJSONSerialization을 사용하여 구문 분석 할 수 있습니다.

1

URL에서 NSData을 요청한 다음 NSJSONSerialization을 사용하여 해석 할 수 있습니다. 예 :

NSURL *url = [NSURL URLWithString:@"http://www.put.your.url.here/test.json"]; 
NSURLRequest *request = [NSURLRequest requestWithURL:url]; 
NSOperationQueue *queue = [[NSOperationQueue alloc] init]; 
[NSURLConnection sendAsynchronousRequest:request queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) { 
    if (error) { 
     NSLog(@"%s: sendAsynchronousRequest error: %@", __FUNCTION__, error); 
     return; 
    } 

    NSError *jsonError = nil; 
    NSArray *results = [NSJSONSerialization JSONObjectWithData:data options:0 error:&jsonError]; 
    if (jsonError) { 
     NSLog(@"%s: JSONObjectWithData error: %@", __FUNCTION__, jsonError); 
     return; 
    } 

    // now you can use the array/dictionary you got from JSONObjectWithData; I'll just log it 

    NSLog(@"results = %@", results); 
}]; 

분명히 JSON이 배열을 나타내는 것으로 가정합니다. 사전 인 경우 NSArray 참조를 NSDictionary 참조로 바꿉니다. 그러나 희망적으로 이것은 아이디어를 설명합니다.

+0

나는 잔잔한 webservice를 사용하고 login.java에서 프로그램을 작성했지만 json 데이터를 생성합니다. http://www.put.your.url.here가 내 localhost입니까, 아니면 내 서버에서 호스트해야합니까? 나는 시험이 없다. 내 자바에 있습니다. 제발 좀 알려 주실 수 있습니까? 고맙습니다. – Chhewang

+0

@Chhewang URL은 웹 서비스를 제공하는 호스트가되어야합니다. 해당 웹 서비스가 현재 시뮬레이터에서 앱을 실행중인 동일한 컴퓨터에서 실행중인 경우'localhost '로 벗어날 수는 있지만 로컬 네트워크가 해결할 호스트 이름을 사용하는 것이 더 신중할 수 있습니다 Wi-Fi 네트워크에 연결된 장치에서도 테스트 할 수 있도록 개발 컴퓨터에 설치하십시오. – Rob

+0

@Chhewang이 웹 서비스가 Mac에서 실행 중이면 "시스템 환경 설정"- "공유"로 이동하면 로컬 네트워크의 컴퓨터 이름을 볼 수 있습니다. 예 : 내 이름은 "이름 - 성 이름 - iMac.local"로 표시되므로 내 Wi-Fi 네트워크의 장치는 http : //Firstname-Lastname's-iMac.local/sample.json "을 통해 액세스 할 수 있습니다. 그렇게하면 내 Wi-Fi 네트워크의 장치가 로컬 네트워크의 내 Mac에 액세스 할 수 있습니다. – Rob

관련 문제