JSON数据解析


    //Json : JavaScript Object Notation, 脚本对象标注法
Student.json
[
 {
    "age":"18",
    "name":"张三",
    "sex":""
 },
 {
   "age":"38",
   "name":"李四",
   "sex":""
 },
 {
    "age":"28",
    "name":"王五",
    "sex":""
 }
]
- (void)viewDidLoad {
    [super viewDidLoad];
    
    self.studentArray = [NSMutableArray arrayWithCapacity:0];
 (1)
        //获取文件路径
    NSString *filePath = [[NSBundle mainBundle] pathForResource:@"Student" ofType:@"json"];
        //转成NSData
    NSData *data = [NSData dataWithContentsOfFile:filePath];
        //进行json解析
    NSError *error = nil;
    
//        NSJSONSerialization: iOS提供的json解析类
    
//    NSJSONReadingMutableContainers: 解析到得字典和数组是可变的(NSMutabelArrary, NSMutableDictionary)
//    NSJSONReadingMutableLeaves: 解析到得叶子节点的内容是可变的(NSMutableString)
//    NSJSONReadingAllowFragments : 允许json数据的最外层不是字典和数据
    
    
    NSArray *dataArray = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:&error];
    if (error) {
        NSLog(@"%@", error);
    }
    
    NSLog(@"%@", dataArray)
for (NSDictionary *dic in dataArray) {
        Student *student = [[Student alloc] init];
        student.name = dic[@"name"];
        student.sex = dic[@"sex"];
        student.age = dic[@"age"];
        [_studentArray addObject:student];
        [student release];
        NSLog(@"%@", student);
    }
(2)  
        //使用jsonkit
        //获取路径
    
    NSString *filePath = [[NSBundle mainBundle] pathForResource:@"Student" ofType:@"json"];
        //获取内容
    NSString *content = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];
        //内容进行json解析
    NSArray *dataArray = [content objectFromJSONString];
    NSLog(@"%@", dataArray);
    for (NSDictionary *dic in dataArray) {
        Student *student = [[Student alloc] init];
        student.name = dic[@"name"];
        student.sex = dic[@"sex"];
        student.age = dic[@"age"];
        [_studentArray addObject:student];
        [student release];
        NSLog(@"%@", student);
    }

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。