使用嵌套的JSON填充UITableView

时间:2012-06-12 14:19:10

标签: iphone ios json uitableview

标题显示我正在尝试从JSON填充UITableView。我得到了看起来像

的json对象
  {
    applications: {
           iphone: {
             application: [
                            {
                              title: "Title",
                             },
                             {
                              title: "Title2",
                             },
                             {
                              title: "Title3",
                             }
                           ]
                      }
                     }
    }

它继续这样,有几个title字段嵌套在应用程序中。

我想将所有标题用作我的手机标签。 我可以得到一个像这样的列表

for (int i = 0; i < 10; i++)
    {
        titleString = [[[[[result objectForKey:@"applications"] objectForKey:@"iphone"] objectForKey:@"application"] objectAtIndex:i] objectForKey:@"title"];
        NSLog(@"title %@", titleString);
    }

哪个确实有效,就像我可以记录标题列表一样...但我知道我会以错误的方式解决这个问题,我甚至无法弄明白myArray在{{1}中的含义在return [myArray count]方法中...完全迷失在这里!感谢帮助!

3 个答案:

答案 0 :(得分:1)

[[[result objectForKey:@"applications"] objectForKey:@"iphone"] objectForKey:@"application"]将返回数组,因此最好存储此数组并在需要的地方使用它,如下所示:

NSArray *titleArray = [[[result objectForKey:@"applications"] objectForKey:@"iphone"] objectForKey:@"application"];

要存储此数组,您可以使用实例变量,以便可以将其用于整个文件。

答案 1 :(得分:0)

您可以将这些标题存储在数组中,然后将此数组用作表的数据源。你的myArray将是你存储的标题所在的数组。

答案 2 :(得分:0)

首先是应用词典
这个应用程序字典有一个关键iPhone的字典 这个iphoneDic有一个Dictionary

数组
NSMutableDictionary *applicationsDict = [response objectForKey:@"applications"];
NSMutableDictionary *iphoneDict = [applicationsDict objectForKey:@"iphone"];
NSMutableArray *applicationArray = [iphoneDict objectForKey:@"application"];

现在在方法numberOfRowInSection中:表视图返回数组计数

return [applicationArray count]

现在在cellForRowAtIndexPath:mthod我们将使用此applicationArray
使用数组...

NSMutableDictionary *titleDict = [applicationArray objectAtIndex:indexPath.row];
cell.titleLabel.text = [titleDict objectForKey:@"title"];

我希望这会对你有所帮助