我遇到了这个问题。我正在尝试使用NSJSONSerialization制作的JSON字典中的数据构建UITableView。我不知道从哪里开始。我已经尝试了3天但是筒仓没有取得任何成果。这是我提出的代码:
#define kBgQueue dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)
#define kJsonURL [NSURL URLWithString: @"http://rs-hosting.nl/panel/serverstatus_json.php"]
#import "ViewController.h"
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
dispatch_async(kBgQueue, ^{
NSData* data = [NSData dataWithContentsOfURL:kJsonURL];
[self performSelectorOnMainThread:@selector(fetchedData:) withObject:data waitUntilDone:YES];
});
}
- (void)fetchedData:(NSData *)responseData {
NSError* error;
NSDictionary* json = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error];
NSDictionary *clients = [json objectForKey:@"announcements"];
NSArray *announcements = [clients objectForKey:@"announcement"];
NSDictionary* announcement = [announcements objectAtIndex:1];
}
- (void)viewDidUnload {
[super viewDidUnload];
}
@end
我能够在标签中的单个视图上显示标签中的内容,但我不知道如何将json中的所有数据转换为表格。有人可以帮我解决一下吗?
SDK:5.1 OSX:10.7.3 XCODE:4.3.1
提前Tnx
答案 0 :(得分:1)
您需要将数据存储在某处(保持NSDictionary与整个json文件一起开始)然后添加UITableView,将其设置为将其数据源指向您的类,然后实现{{3}如上所述。
UITableView将在填写表格时从这些方法请求数据。唯一需要的两个方法是tableView:numberOfRowsInSection:
和tableView:cellForRowAtIndexPath:
,所以从这两个方法开始,在进行任何其他自定义之前,先在表上显示数据。
答案 1 :(得分:1)
在NSDictionary中获取数据后,将其保存在NSArray中,填充您想要显示的NSString对象,然后调用函数[Tableview reloadData];在你的ViewDidLoad功能和你很好的去。