我有这样的JSON数据:
[{"id":"3","name":"jason"},{"id":"4","name":"karen"}]
我想构建一个表视图,每个对都有一个部分[id,name]。节标题应为 id 值,每个节的唯一单元格应为 name 值。
如何将JSON数据解析为数组并使用[array count]来确定必须显示多少部分?
非常感谢..
原谅我糟糕的英语!
答案 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;
}
答案 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