iOS:json解析

一、使用NSJSONSerialization将json数据解析成NSArray,开启循环从NSArray中取出数据并赋值

/*
 解析son
 */
- (void) parseJson:(NSData *)data{
    //JSONObjectWithData方法第2个参数值:0特殊处理,性能最好  NSJSONReadingAllowFragments默认情况,支持NSArray或NSDictionary  NSJSONReadingMutableContainers根节点可变 NSJSONReadingMutableLeaves子节点可变
    //解析列表json数据,NSArray中每个item为NSDictionary
    NSArray *array = [NSJSONSerialization JSONObjectWithData:data options:0 error:NULL];
    
    //创建列表,用于实体类存放
    NSMutableArray *list = [NSMutableArray array];
    
    //创建循环取出NSArray中的数据并赋值
    [array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
        UserInfo *info = [[UserInfo alloc] init];
         //KVC:将NSDictionary解析成实际数据对象(UserInfo为自定义实体类),两者的key名与类型必须一样
        [info setValuesForKeysWithDictionary:obj];
        //将item对象存入列表
        [list addObject:info];
    }];
    NSLog(@"count: %d", [list count]);
}

二、解析示例:

    NSString *json = @"[{\"uId\": \"1\", \"name\": \"姓名1\", \"job\": \"IT\"}, {\"uId\": \"2\", \"name\": \"姓名2\", \"job\": \"IT\"}]";
    NSData *data = [json dataUsingEncoding:NSUTF8StringEncoding];
    [self parseJson:data];

 

你可能感兴趣的:(iOS)