/ / IOS中json操作

IOS中json操作

2013-11-07 posted in [IOS学习记]

Json数据封包

NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:@"value1",@"key1",@"value2",@"key2",@"value3",@"key3", nil];    
// isValidJSONObject判断对象是否可以构建成json对象    
if ([NSJSONSerialization isValidJSONObject:dic]){  
      NSError *error;        
      // 创造一个json从Data, NSJSONWritingPrettyPrinted指定的JSON数据产的空白,使输出更具可读性。        
      NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPrettyPrinted error:&error];  
      NSString *json =[[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];        
      NSLog(@"json data:%@",json);    
 }

Json数据解析

NSError *error;    
//加载一个NSURL对象    
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://m.weather.com.cn/data/101120101.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"];    
 NSString *text = [NSString stringWithFormat:@"今天是 %@  %@  %@  的天气状况是:%@  %@ ",
 		[weatherInfo objectForKey:@"date_y"],
 		[weatherInfo objectForKey:@"week"],
 		[weatherInfo objectForKey:@"city"], 
 		[weatherInfo objectForKey:@"weather1"], 
 		[weatherInfo objectForKey:@"temp1"]];     
 NSLog(@"weatherInfo:%@", text );