你的位置:首页 > 操作系统

[操作系统]iOS JSON 数据解析


JSON 是比较常用的数据格式,相比

NSJSONSerialization 是 iOS 5 以后推出的,比较好用的 JSON 解析包.

JSON 数据格式由对应的 '[',']' 和 '{','}',前者表示数组,后者表示字典.

NSJSONSerialization 解析过程:

1.获取文件路径

2.获取文件内容

3.解析

简单小例子:

 1 - (IBAction)parserJSON:(id)sender { 2    3   //获取文件路径 4    5   NSString *jsonPath = [[NSBundle mainBundle] pathForResource:@"Student" ofType:@"json"]; 6   NSError *error = nil; 7   NSData *jsonData = [NSData dataWithContentsOfFile:jsonPath]; 8   NSMutableArray *array = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&error]; 9   if (error == nil) {10     NSLog(@"%@",array);11   }else {12     NSLog(@"%@",error);13   }14   15   //数据封装16   17   NSMutableArray *arr = [NSMutableArray array];18   19   for (NSDictionary *dic in array) {20     Student *stu = [[Student alloc]initWithDictionary:dic];21     [arr addObject:stu];22   }23   24   for (Student *stu in arr) {25     NSLog(@"%@",stu);26   }27 }

 

JSONKit 解析:(代码)

 1 - (IBAction)parserJSONWithJESONKIT:(id)sender { 2    3   //获取文件路径 4    5   NSString *jsonPath = [[NSBundle mainBundle] pathForResource:@"Student" ofType:@"json"]; 6   NSError *error = nil; 7   NSString *JSONStr = [[NSString alloc]initWithContentsOfFile:jsonPath encoding:NSUTF8StringEncoding error:&error]; 8   NSLog(@"%@",JSONStr); 9   //让jesonKIT 解析 JSON 数据10   NSMutableArray *array = [JSONStr objectFromJSONString];11   NSLog(@"%ld",array.count);12   //数据封装13   NSMutableArray *arr = [NSMutableArray array];14   15   for (NSDictionary *dic in array) {16     Student *stu = [[Student alloc]initWithDictionary:dic];17     [arr addObject:stu];18   }19   20   for (Student *stu in arr) {21     NSLog(@"%@",stu);22   }23 }