2012-06-04 134 views
1

我有以下JSON數據,這是來自我的Web服務的響應。如何在UITableView中顯示JSON數據

 {"d": [{"raumKlassenObject":"Telepresenzraum"}, 
{"raumKlassenObject":"Besprechungsraum"}, 
{"raumKlassenObject":"Videokonferenzraum"}, 
{"raumKlassenObject":"IT-Schulungsraum"}, 
{"raumKlassenObject":"Konferenzraum"}]} 

如何在TableView中顯示數據Telepresenzraum,Besprechungsraum等...。

繼承人我的代碼到目前爲止。

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    dic = [NSJSONSerialization JSONObjectWithData:result options:kNilOptions error:nil]; 
    array = [dic allKeys]; 

} 

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 

    // Return the number of sections. 
    return 1; 
} 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 

    // Return the number of rows in the section. 
    return array.count; 
} 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *CellIdentifier = @"Cell"; 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

    cell.textLabel.text=[NSString stringWithFormat:@"%@",[dic objectForKey:@"d"]];  



return cell; 
} 

如果我這樣做,在泰伯維輸出

[{"raumKlassenObject":"Telepresenzraum"},{"raumKlassenObject":"Besprechungsraum"},{"raumKlassenObject":"Videokonferenzraum"},{"raumKlassenObject":"IT-Schulungsraum"},{"raumKlassenObject":"Konferenzraum"}] 

我不知道如何在tableview中的行只顯示Telepresenzraum,Besprechungsraum,Videokonferenzraum等。

Thx尋求幫助。

回答

2

你頂級字典只有一個鍵「d」,所以array.count將是1,[dic objectForKey:@「d」]將是整個字典數組。

因此,要解決這個問題重新定義數組:

array = [[dic valueForKey:@"d"] valueForKey:@"raumKlassenObject"]; 

這應該給你的那個鍵中的所有值的數組。然後,代替第一線下方與第二:

cell.textLabel.text= [NSString stringWithFormat:@"%@",[dic objectForKey:@"d"]]; 
cell.textLabel.text= [array objectAtIndex:indexPath.row]; 
+0

thx它的工作。多謝 – Bashud

0

你需要一個零檢查cell。它爲零,直到你滾動了一下。如果它爲零,則需要使用UITableView單元類init方法實際創建單元。

+0

我沒有,現在,但那不是固定我的問題/疑問 – Bashud

+0

'cell.textLabel.text = [DIC objectForKey:[陣列objectAtIndex:indexPath.row] ];' – borrrden

+0

其輸出仍然相同[{「raumKlassenObject」:「Telepresenzraum」},{「raumKlassenObject」:「Besprechungsraum」},{「raumKlassenObject」:「Videokonferenzraum」},{「raumKlassenObject」:「IT-Schulungsraum」 },{ 「raumKlassenObject」: 「Konferenzraum」}]。 – Bashud