json是一种轻量级数据交换格式,相对于xml,它描述相同的数据所需的字符更少,所以传输起来更加快,所需的流量也会减少。
同时,他的数据格式更类似于对象,所以在使用面向对象编程时也更加方便。由于这些原因,在移动开发中,数据的交换会经常使用json来作为交换的格式,我之前也有接触过json数据格式,所以一直觉得它要比xml好用,也更轻便。在iOS中也有哦很多框架专门进行json解析。
在iOS 5之后的SDK包含了NSJSONSerialization框架,是非常优秀的json编码/解码框架,如果不需要考虑iOS 5之前的版本,那么使用NSJSONSerialization进行json解析五一是首选,它的使用非常简单方便。
首先,确定你使用了iOS 5或者之后的SDK,然后在试图控制器中的ViewDidLoad方法中修改如下代码即可:
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
//设置json文件路径
NSString* path = [[NSBundle mainBundle] pathForResource:@"Notes" ofType:@"json"];
NSData* jsonData = [[NSData alloc] initWithContentsOfFile:path];
NSError* error;
//使用NSJSONSerialization的类方法JSONObjectWithData:options:error:进行解码
id jsonObj = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&error];
if (!jsonObj || error) {
NSLog(@"json解码失败");
}
_listData = [jsonObj objectForKey:@"Record"];
}
相对于xml解析,json解析明显简洁很多,同时传输相同数据又可以拥有较快的传输速度和较少流量,所以在移动开发中,更多使用json来作为数据交换格式。