新版SDK自身提供Json解析库,为了向下兼容很多程序仍会采用其他类库来解析,以下就是用JSONKit解析的例子
NSLog(@"打印测试");
NSString *jsonstring =@"[{\"age\":18,\"book\":{\"price\":23.2,\"title\":\"boook111\"},\"name\":\"samyou\"},{\"age\":22,\"book\":{\"price\":33,\"title\":\"booook222\"},\"name\":\"samsam\"}]";
NSData *data=[jsonstring dataUsingEncoding:NSUTF8StringEncoding];
NSArray *arr=(NSArray *)[data mutableObjectFromJSONData];
NSLog(@"count=%d",arr.count);
for(int i=0;i<arr.count;i++)
{
NSDictionary *people=[arr objectAtIndex:i];
NSString *name=[people objectForKey:@"name"];
NSString *age=[people objectForKey:@"age"];
NSLog(@"person withname=%@,age=%d",name,[age intValue]);
NSDictionary *book=[people objectForKey:@"book"];
NSString *bookname=[book objectForKey:@"title"];
NSNumber *price=[book objectForKey:@"price"];
NSLog(@"book with title=%@,price=%f",bookname,[price doubleValue]);
}
- - (IBAction)btnPressIOS5Json:(id)sender {
- 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 );
- }