来自JSON数据的UITableView部分

时间:2011-10-25 05:55:33

标签: iphone json uitableview

我有这样的JSON数据:

[{"id":"3","name":"jason"},{"id":"4","name":"karen"}]

我想构建一个表视图,每个对都有一个部分[id,name]。节标题应为 id 值,每个节的唯一单元格应为 name 值。

如何将JSON数据解析为数组并使用[array count]来确定必须显示多少部分?

非常感谢..

原谅我糟糕的英语!

2 个答案:

答案 0 :(得分:4)

实施UITableViewDatasource以下方法:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return [JSONArray count];
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
    return 1;
}

设置部分的标题值:

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
    return [[JSONArray objectAtIndex:section] objectForKey:@"id"];
}

设置单元格的值实现UITableViewDelegate

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
        cell.textLabel.text = [[JSONArray objectAtIndex:indexPath.section] objectForKey:@"name"]; // set the cell's text here
    }
    return cell;
}

供参考检查UITableViewDataSourceUITableViewDelegate

答案 1 :(得分:1)

看看这个项目。它是一个使用JSON的框架: https://github.com/stig/json-framework/

可以在以下位置找到此框架的教程: http://iosdevelopertips.com/networking/iphone-json-flickr-tutorial-part-1.html

框架为NSString添加了一个类别。使用该类别,您可以将JSON数据解析为NSArray(对象示例中的对象列表)或NSDictionary(某些对象或结构):

#import "JSON.h"
...
NSString jsonString = //get your JSON from somewhere
NSArray * array = [jsonString JSONValue];

我希望我能给你一个印象,为了实现你的目标该怎么做。更多信息在JSON项目的教程中或在上面提到的教程中。

如何从JSON数组构建表格的答案是:UITableView sections from JSON data