JSON解析:
一、系统自带方法
- (IBAction)JsonSerialization:(id)sender { //模拟构造数据 NSString *path = [[NSBundle mainBundle] pathForResource:@"Json" ofType:@"txt"]; NSData *data = [[NSData alloc]initWithContentsOfFile:path]; //使用系统提供的类进行json转换 //最方便的是字典和数组,NSJSONReadingAllowFragments,可以使用KVC NSArray *array = [NSJSONSerialization JSONObjectWithData:data options:(NSJSONReadingAllowFragments) error:nil]; //初始化数据 self.dataArray = [NSMutableArray array]; //遍历数组赋值 for (NSDictionary *dic in array) { Person *p = [[Person alloc]init]; [p setValuesForKeysWithDictionary:dic]; [self.dataArray addObject:p]; } //打印结果 for (Person *p in self.dataArray) { NSLog(@"%@-%@-%@",p.name,p.sex,p.info); }}
说明:Person 是一个model模型,self.dataArray 保存解析的数据。
二、JSONKit
- (IBAction)JSONKit:(id)sender { //模拟数据 NSString *path = [[NSBundle mainBundle] pathForResource:@"Json.txt" ofType:nil]; NSData *data = [NSData dataWithContentsOfFile:path]; //使用第三方类库进行解析 NSArray *array = [data objectFromJSONData]; //初始化数据 self.dataArray = [NSMutableArray array]; //遍历数组赋值 for (NSDictionary *dic in array) { Person *p = [[Person alloc]init]; [p setValuesForKeysWithDictionary:dic]; [self.dataArray addObject:p]; } //打印结果 for (Person *p in self.dataArray) { NSLog(@"%@-%@-%@",p.name,p.sex,p.info); } }
说明:需要导入第三方类库JSONKit的头文件。