2012-06-04 3 views
1

У меня есть следующие данные JSON, которые отвечают на мой Web-сервис.Как отображать данные JSON в UITableView

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

Как я могу отобразить Telepresenzraum данных, Besprechungsraum и т.д ... в TableView.

Heres my Code до сих пор.

- (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; 
} 

Если я сделать это так, что выход в Tableview является

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

Я не знаю, как отобразить только Telepresenzraum, Besprechungsraum, Videokonferenzraum и т.д .. в Tableview строк.

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. Это будет быть ниль, пока вы не прокрутите немного. Если это нуль, вам нужно создать ячейку, используя методы init класса ячейки UITableView.

+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

Смежные вопросы