1

我有以下 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 等。

谢谢帮助。

4

2 回答 2

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];
于 2012-06-04T04:50:05.860 回答
0

您需要对cell. 在您滚动一点之前,它将为零。如果为 nil,则需要使用 UITableView 单元格类的 init 方法实际创建单元格。

于 2012-06-04T02:40:07.947 回答