2013-07-25 58 views
1

我已經從Java Restful WebServices生成了JSON數據,並且需要將其放入Objective C代碼中。我如何使用JSON數據並將其集成到Objective C中? IDE已經生成了本地URL,我如何在其他機器上使用生成的JSON數據。謝謝如何從Objective C讀取Java生成的JSON數據?

+0

值得一提的是,只要您的Web服務生成有效的JSON,就不必擔心服務器是否正在執行Java代碼,C#,node.js等。 –

+0

感謝您的回覆。唯一的問題是如何將生成的JSON數據調用到Objective C中。由於我工作在JAVA上,並且我的同事正在開發Objective C.我們在Objective C中實現的問題。我在PC上工作,他是在Mac工作。 – Chhewang

回答

1

看看NSURLConnection從您的Web服務檢索JSON。然後你可以使用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

我已經使用了restful webservice和我的程序在login.java中,但是它生成了json數據。 http://www.put.your.url.here是我的本地主機還是我需要在我的服務器上託管?我沒有test.json。我的一個是Java。你能讓我清楚嗎?謝謝.. – Chhewang

+0

@Chhewang URL應該是主機提供Web服務的主機。如果該Web服務當前正在同一臺計算機上運行,​​那麼您將在模擬器上運行您的應用程序,但您可以使用'localhost'離開,但使用本地網絡將解析的某些主機名可能更爲謹慎您的開發機器,以便您也可以在連接到您的WiFi網絡的設備上進行測試。 – Rob

+0

@Chhewang如果此Web服務在Mac上運行,則可以轉到「系統預置」 - 「共享」,它會顯示您的計算機名稱在本地網絡上。例如。我說「名字 - 姓氏的iMac.local」,所以我的無線網絡上的設備可以通過'「http://Firstname-Lastname's-iMac.local/sample.json」或其他方式訪問它。這樣,我的wifi網絡上的設備就可以訪問我的本地網絡上的Mac。 – Rob