解析: 就是按照一种约定好的格式(假象),由后台开发人员按照格式存数据,由前端开发人员按照格式取数据.(谨记:这种格式是由后台开发人员决定的,我们无权决定)
解析的本质:按照约定好的格式,取出我们想要的数据的过程.
JSON解析系统
1.先获取文件路径
NSString *jsonPath = [[NSBundle mainBundle] pathForResource:@"Student" ofType:@"json"];
2.初始化NSData对象
NSData *data = [NSData dataWithContentsOfFile:jsonPath];
3.解析(数据最外层是什么类型,就用什么类型,如下)
NSMutableArray *arr = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
对于 JSONKit 提供的解析方式是为 NSString,NSData 添加分类的方式 , 在分类中添加了解析的方法 , 将 json 格式数据解析成 NSArray,NSDictionary.效率 仅次于系统提供的方法 .
而为 NSArray,NSDictionary 添加的分类的方法 , 则是将 OC 的对象 , 转化为 JSON 格式字符串 .
一.将OC的数组转换成json格式
NSArray *arr = @[@"aa",@"bb",@"cc",@"dd",@"ee"];
转化
NSString *jsonStr = [arr JSONString];
二.将字典转化为JSON格式NSDictionary *dic = @{ @"name" : @"Frank" , @"gender" : @"man" , @"age" : @"18" } ;
NSString *jsonStr = [dic JSONString ];
三.NSString解析
1.先获取文件路径
NSString *jsonPath = [[NSBundle mainBundle] pathForResource:@"Student" ofType:@"json"];
2.初始化NSString对象
NSString *jsonStr = [NSString stringWithContentsOfFile:jsonPath encoding:NSUTF8StringEncoding error:nil];
3.解析
NSArray *arr = [jsonStr objectFromJSONString];
四. NSData解析
1.先获取文件路径
NSString *jsonPath = [[NSBundle mainBundle]
pathForResource:@"Student" ofType:@"json"];
2.初始化NSData对象
NSData *data = [NSData dataWithContentsOfFile:jsonPath];
3.解析
NSArray *arr = [data objectFromJSONData ];