JSON 是比較常用的數(shù)據(jù)格式,相比 xml 層次更清晰,這里介紹兩種解析 JSON 的方式:NSJSONSerialization 和 JSONKit
NSJSONSerialization 是 iOS 5 以后推出的,比較好用的 JSON 解析包.
JSON 數(shù)據(jù)格式由對(duì)應(yīng)的 '[',']' 和 '{','}',前者表示數(shù)組,后者表示字典.
NSJSONSerialization 解析過(guò)程:
1.獲取文件路徑
2.獲取文件內(nèi)容
3.解析
簡(jiǎn)單小例子:
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 //數(shù)據(jù)封裝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 數(shù)據(jù)10 NSMutableArray *array = [JSONStr objectFromJSONString];11 NSLog(@"%ld",array.count);12 //數(shù)據(jù)封裝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 }
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注