如何在 iphone 中显示 json 的可变数组数据,如可扩展/可折叠 TableView?

Posted

技术标签:

【中文标题】如何在 iphone 中显示 json 的可变数组数据,如可扩展/可折叠 TableView?【英文标题】:How to display the json's Mutable Array data like Expandable/Collapsible TableView in iphone? 【发布时间】:2013-10-28 12:07:51 【问题描述】:

我是 ios 新手。我从 WebService 获取数据并使用 json 序列化将该数据存储到 MutableArrays 中。但现在我必须在 TableView 中显示该数据,例如可扩展和可折叠单元格。请发给我解决这个问题的示例代码。

  NSMutableArray *arr=[NSMutableArray alloc]init];

    NSString *Str_Menu_desc=[NSString alloc]init];

    NSURL *url=[NSURL URLWithString:@"http://www.google.com/CategoryInfo.php"];

    NSData *data=[NSData dataWithContentsOfURL:url];

    NSError *err;

    json=[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:&err];


    NSEnumerator *enu=[json objectEnumerator];

    while (dic =(NSDictionary *)[enu nextObject])
    

            [arr addObject:[dic1 objectForKey:@"menu_name"]];

    


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



    return [arr count];




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




    cell=[[UITableViewCell alloc]init];
    cell.textLabel.text=[arr objectAtIndex:indexPath.row];
    return cell;





    -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;



    NSString *local=[arr objectAtIndex:indexPath.row];


       NSURL *url=[NSURL URLWithString:@"http://www.google.com/SubCategoryInfo.php"];

    NSData *data=[NSData dataWithContentsOfURL:url];

    NSError *err;

    json=[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:&err];


    NSEnumerator *enu=[json objectEnumerator];

    while (dic =(NSDictionary *)[enu nextObject])
    
        if (local isEqual:[dic objectForKey:@"category_name"]])
        

            Str_Menu_desc=[NSString stringWithFormat:@"%@",[dic objectForKey:@"Sub_Category_name"]];

        
    




现在,我使用选定的类别名称获得了子类别名称。我必须在可展开/可折叠的 TableView 中显示类别和子类别名称。提前致谢。

【问题讨论】:

【参考方案1】:

您所说的可扩展-可折叠单元是什么意思?可能是这样的:Expanding/Collapsing TableView Sections?

另一种方式,在 -tableView:tableView didSelectRowAtIndexPath: 方法中接收到的数据,放入新的 UITableViewController 并将其推送到视图层次结构中,代码如下:[self.navigationController pushViewController:content animated:YES]; 记住:必须先创建导航控制器,否则代码将不工作。

【讨论】:

以上是关于如何在 iphone 中显示 json 的可变数组数据,如可扩展/可折叠 TableView?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Objective C 中形成 JSON 格式的可变数组

如何在tableview的可变数组中存储多个选定的行项

如何在反应打字稿中从json文件中获取和显示数据

iPhone 作为 Pendrive

iPhone UITableView 从平面数组填充可变行部分

如何从iphone中的json数组中获取对象?