iOS 数据解析

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的头文件。

你可能感兴趣的:(json,数据解析)