JSONKit解析

本文介绍了一个iOS应用中如何使用NSURLConnection异步请求JSON数据,并在UITableView中展示这些数据的方法。具体包括了如何解析JSON数据、更新UI以及实现UITableView的数据源方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#import "ViewController.h"

#import "JSONKit/JSONKit.h"

@interface ViewController ()<UITableViewDelegate,UITableViewdatasource>

{

    UITableView *table;

    NSDictionary *dic;

}

@end

#define  JSON_URL @"http://127.0.0.1/8C.json"

@implementation ViewController

- (void)viewDidLoad {

    [super viewDidLoad];

    table = [[UITableView alloc]initWithFrame:self.view.frame style:UITableViewStyleGrouped];

    table.delegate =self;

    table.dataSource =self;

    [self.view addSubview:table];

    [NSURLConnection sendAsynchronousRequest:[[NSURLRequest alloc]initWithURL:[NSURL URLWithString:JSON_URL]] queue:[[NSOperationQueue alloc]init] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {

            dic = [data objectFromJSONData];

            dispatch_async(dispatch_get_main_queue(), ^{

                [table reloadData];

            });

    }];

}

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{

    return dic.allKeys.count;

}

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

    return [[dic objectForKey:[dic.allKeys objectAtIndex:section]]count];

}

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

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@""];

    if (!cell) {

        cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@""];

    }

    NSDictionary *_dictionary = [dic objectForKey:[dic.allKeys objectAtIndex:indexPath.row]];

    cell.textLabel.text = [_dictionary objectForKey:@"name"];

    cell.detailTextLabel.text = [_dictionary objectForKey:@"age"];

    return cell;

}

-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{

    return [dic.allKeys objectAtIndex:section];

}

@end


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值