以动态方式在UITableView中打印JSON数据

时间:2012-10-04 13:40:09

标签: iphone objective-c ios json

我在下面给出了一些JSON数据,我想在表格视图中显示它。我已经成功使用静态数据,但现在我想使用动态数据。我怎么能这样做?

5 个答案:

答案 0 :(得分:0)

使用JSON Parser非常简单,解析JSON数据并将数据存储在NSMutableArray中,并将该数组传递给表视图。 希望这可以帮助你..

答案 1 :(得分:0)

您必须使用JSON解析器,它将构建一个数据结构(通常是嵌套的NSArray,NSDictonary,NSNumber和NSString实例),您可以正常操作它们。 See my solution for this.

旁注:如果你不熟悉从非结构化创建结构化数据这样的基本概念,你应该学会熟悉这样的东西而不是已经制作最好的iPhone应用程序了( TM)。

答案 2 :(得分:0)

一旦下载并解析了JSON数据,就可以有效地获取静态数据。您可以在显示表视图之前下载并解析JSON数据,然后使用数组或字典指定您希望如何布置表视图。您需要以自己的方式将JSON数据表示为值对象,然后您可以对其进行计数和读取,以便为表视图提供所需的数据。如果您在显示表格视图后将要获取数据,那么一旦获得数据,只需调用-[<tableViewName> reloadData]

答案 3 :(得分:0)

您可以使用背景颜色和文本对齐方式创建标题。

-(UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{

  UIView *headerView = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.bounds.size.width, 30)] autorelease];
if (section == 0){
   [headerView setBackgroundColor:[UIColor redColor]];
    UILabel * headerLabel=[[UILabel alloc]initWithFrame:CGRectMake(0, -5, headerView.frame.size.width, headerView.frame.size.height)];

    headerLabel.textAlignment = UITextAlignmentCenter;
    headerLabel.text =@"Current Schedule";
    [headerLabel setFont:[UIFont fontWithName:@"Arial-ItalicMT" size:18]];
    headerLabel.backgroundColor = [UIColor clearColor];

    [headerView addSubview:headerLabel];
    [headerLabel release];

    return headerView;
}

}

答案 4 :(得分:0)

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

return [[[[jsonObject valueForKey:@"companies"] objectAtIndex:0] valueForKey:@"Departments"]count];
 }

   - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
  {
return [[[[[[jsonObject valueForKey:@"companies"] objectAtIndex:0] valueForKey:@"Departments"] objectAtIndex:0] valueForKey:@"Employees"] count];
}



 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

label1.text = [[[[[[[jsonObject valueForKey:@"companies"] objectAtIndex:0] valueForKey:@"Departments"]objectAtIndex:section]valueForKey:@"Employees"]objectAtIndex:row]valueForKey:@"name"];

  }
  - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
     {
     return [[[[[jsonObject valueForKey:@"companies"] objectAtIndex:0] valueForKey:@"Departments"]objectAtIndex:section]valueForKey:@"name"];
  }