2013-07-26 73 views
1

顯示信息,我有一個URL請求,在這種格式返回一個JSON字符串:的NSData - > JSON - >的NSArray和UITableView的

{ 
"code": 1, "data": [ 
{ 
"city": "Trier", 
"distance": 6, 
"id": "1", 
"image": "1_51af0b6a7ce86.png", "lat": "49.750893", 
"long": "6.622419", 
"name": "A1 Trier", 
"street": "Über Brücken 4", 
"zip": "54294" 
}, { 
} ] 
} 
"city": "Trier", 
    "distance": 7, 
    "id": "2", 
    "image": "nologo.png", "lat": "49.757984", 
    "long": "6.640876", "name": "Safari Haus Trier", "street": "Stockplatz 2a", "zip": "54294" 

現在我需要一個NSData然後NSArrayNSDictionary保存這些信息吧?我想在桌面視圖中顯示來自JSON的數據。在每個單元格中應該是俱樂部的名稱,地點和距離。我怎樣才能做到這一點?在第一個單元格中應該是第一個俱樂部和名稱等等,而在第二個單元格中是第二個俱樂部。

如何拆分這個JSON字符串?

+1

創建字符串的JSON對象並檢索「數據」鍵的數組。然後將該數組對象一個接一個地保存到具有唯一數據標識符的mutabledictionary中,並在tableviewforcell數據中獲取該數據。 –

+0

你能舉個例子嗎?因爲我在json和nsdata中真的很新。 –

回答

1

參考此鏈接:

Parsing JSON in Objective-C using NSJSONSerialization

正如上面的鏈接提到的,你可以使用NSJSONSerialization如下解析JSON :

STEP-1:轉換您JSON字符串(說jsonString)至NSData的

NSData* data = [str dataUsingEncoding:NSUTF8StringEncoding]; 

STEP-2:序列化JSON成

NSError *jsonParsingError = nil; 
NSArray *responseArray = [NSJSONSerialization JSONObjectWithData:response 
options:0 error:&jsonParsingError]; 

STEP-3的NSArray

的數據:在你 cellForRowAtIndexPath:的tableview委託方法,爲tableview創建一個自定義單元,其中有三個顯示俱樂部名稱(比如說 lblName),俱樂部距離(比如 lblDistance)和俱樂部地點(比如 lblPlace)的標籤。一旦你完成了這一點,你可以操縱數組中的數據並將其顯示在tableview中

讓我知道你是否需要更多的幫助。

+0

我已經像你一樣,但應用程序崩潰。我得到錯誤[__NSDictionaryM dataUsingEncoding:]:無法識別的選擇器發送到實例0xa140d90 。錯誤發生在第1步。這是我的代碼NSData * data = [jsonstringgetclubs dataUsingEncoding:NSUTF8StringEncoding]; –

+0

我發現了錯誤。它應該是一個Nsdictionary而不是一個數組。但知道我只能讀「數據」。例如,我不能僅顯示距離。只有洞信息塊 –

+0

我明白了。我這樣做,現在它工作。 NSLog(@「res%@」,[[[responseArray objectForKey:@「data」] objectAtIndex:1] objectForKey:@「city」]); –

0

嘗試使用JSON工具包進行JSON解析。

你可以找到JSONKit here

看這example

+0

我需要他們的帳戶和密鑰。沒有json套件是不可能的?只有iOS 6的功能? –

+0

這只是一個例子。嘗試使用你的json字符串解析。使用jsonkit函數。 –