第三弹:JSON数据通讯格式
JSON 是现在比较流行的一种数据交换格式,尤其是在IOS5以后,苹果增加了对json操作的api,让我们对json的解析变得非常方便而且速度更快了。
但是由于json本身的限制,当要进行大量数据的交换时,使编码工作变得比较繁琐。所以一般轻量级的数据交换使用json,而要进行大量数据交换时,一般使用xml。虽然相较于json来说,xml的解析速度会慢上很多。
闲言少叙,附上json使用的简单方法:
{
........
NSURL *url = [NSURLURLWithString:@"xxxxxxxxx"];
NSError *error;
NSData *response = [NSURL ConnectionsendSynchronousRequest:[NSURL RequestrequestWithURL:url] returningResponse:nil error:nil];
NSDictionary *weatherDic = [NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingMutableLeaves error:&error];
NSDictionary *weatherInfo = [weatherDic objectForKey:@"mytemp"];
NSLog(@"temp1:%@ temp2:%@ temp3:%@",[weatherInfo objectForKey:@"temp1"],[weatherInfo objectForKey:@"temp2"],[weatherInfo objectForKey:@"temp3"]);
}
输出结果:temp1:aaaaa temp2:bbbbb temp3:ccccc
--------------------------------------------------------------------------------------------------------------------------------------------
附上匹配上面代码的json一般格式:
{"mytemp":{"temp1":"aaaaa","temp2":"bbbbb","temp3":“ccccc”}}
可以发现json的格式有点类似于键值对的形式每个"key":"value"
每一对{}里面是一个NSDictionary的值,NSDictionary 的值也可以是一个NSDictionary....
还有如"temp":[123,"ddddd"] 这种形式的,是一个键:temp 对应一个array的值,array里面包含了一个 123的整数,一个ddddd的字符串;
----------------------------------------------------
因为Json的API只有在IOS5以上的系统才可以使用,那早期的版本要使用JSON怎么办呢!?
这时候,我们可以使用第三方的开源库:TouchJson,SBJson,JSONKit等。
个人推荐使用JSONKit
好了写到这,吃午饭去了!