我有以下JSON数据,这是来自我的Web服务的响应。
{"d": [{"raumKlassenObject":"Telepresenzraum"},
{"raumKlassenObject":"Besprechungsraum"},
{"raumKlassenObject":"Videokonferenzraum"},
{"raumKlassenObject":"IT-Schulungsraum"},
{"raumKlassenObject":"Konferenzraum"}]}
如何在TableView中显示Data 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;
}
如果我这样做,Tableview中的输出是
[{"raumKlassenObject":"Telepresenzraum"},{"raumKlassenObject":"Besprechungsraum"},{"raumKlassenObject":"Videokonferenzraum"},{"raumKlassenObject":"IT-Schulungsraum"},{"raumKlassenObject":"Konferenzraum"}]
我不知道如何在tableview行中只显示Telepresenzraum,Besprechungsraum,Videokonferenzraum等。
请求帮助。
答案 0 :(得分: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];
答案 1 :(得分:0)
您需要cell
的零检查。在您滚动一点之前,将为零。如果它是nil,则需要使用UITableView单元类init方法实际创建单元格。