·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> app软件开发 >> IOS开发 >> iOSJSON数据解析

iOSJSON数据解析

作者:佚名      IOS开发编辑:admin      更新时间:2022-07-23

JSON 是比较常用的数据格式,相比 xml 层次更清晰,这里介绍两种解析 JSON 的方式:NSJSONSerialization 和 JSONKit

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 }

JSONKit.zip 下载