这里介绍了三种常用json的解析,当然系统原生的的方法效率更高,其中jsonkit次之。
//第一,SBjson解析json
NSURL *ur = [NSURL URLWithString:@"http://api3.9v.com:81/default.aspx?type=image&apps_id=1441&icontype_id=12&page=1&pagesize=1"];
NSError *error1 = nil;
NSString *jsonString = [NSString stringWithContentsOfURL:ur encoding:NSUTF8StringEncoding error:&error1];
SBJsonParser *parser = [[SBJsonParser alloc] init];
NSArray *rootDic = [parser objectWithString:jsonString error:&error];
NSLog(@"aw dfasdf ------ %@",jsonString);
NSLog(@"hahahh ----- %@",rootDic);
//第二,jsonkit解析json
// NSString *path = [[NSBundle mainBundle] pathForResource:@"data" ofType:@"json"];
// NSData *content = [NSData dataWithContentsOfFile:path];
NSURL *url1 = [NSURL URLWithString:@"http://api3.9v.com:81/default.aspx?type=image&apps_id=1441&icontype_id=12&page=1&pagesize=1"];
NSData *data = [NSData dataWithContentsOfURL:url1];
NSDictionary *kitData = [data objectFromJSONData];
NSString *kitString = [kitData JSONString];
NSLog(@"data ======%@",data);
//或者
NSString *jsong = [NSString stringWithContentsOfURL:url1 encoding:NSUTF8StringEncoding error:&error];
NSDictionary *kkk = [jsong objectFromJSONString];
NSLog(@"jsong----%@",jsong);
NSLog(@"kkk ====%@",kkk);
NSLog(@"-kitString-- =======%@",kitString);
NSError *error;
//加载一个NSURL对象
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://m.weather.com.cn/data/101180601.html"]];
//将请求的url数据放到NSData对象中
NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
//IOS5自带解析类NSJSONSerialization从response中解析出数据放到字典中
NSDictionary *weatherDic = [NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingMutableLeaves error:&error];
NSDictionary *weatherInfo = [weatherDic objectForKey:@"weatherinfo"];
txtView.text = [NSString stringWithFormat:@"今天是 %@ %@ %@ 的天气状况是:%@ %@ ",[weatherInfo objectForKey:@"date_y"],[weatherInfo objectForKey:@"week"],[weatherInfo objectForKey:@"city"], [weatherInfo objectForKey:@"weather1"], [weatherInfo objectForKey:@"temp1"]];
NSLog(@"weatherInfo字典里面的内容为--》%@", weatherDic );