JSON 数据的系统解析

- (IBAction)jsonSystemButtonDidClicked:(UIButton *)sender {

    self.JSONArray = [NSMutableArray array];

    // 1、拿到 json 文件的路径
    NSString *path = [[NSBundle mainBundle] pathForResource:@"student" ofType:@"json"];

    // 2、依据路径获取文件内容为 NSData 对象
    NSData *data = [NSData dataWithContentsOfFile:path];

    // 3、解析開始
    NSArray *array = [NSJSONSerialization JSONObjectWithData:data options:(NSJSONReadingMutableContainers) error:nil];


    for (NSDictionary *dict in array) {
        StudentModal *modal = [StudentModal new];
        [modal setValuesForKeysWithDictionary:dict];
        [self.JSONArray addObject:modal];
    }

    for (StudentModal *modal in self.JSONArray) {
        NSLog(@"JSONArray = %@, %ld, %@", modal.name, modal.number, modal.hobby);
    }
}
@property (nonatomic, strong) NSMutableArray *JSONArray;

当模型中类型冲突时

@implementation StudentModal

- (NSString *)description
{
    return [NSString stringWithFormat:@"%@, %@, %@, %ld, %@", self.name, self.sex,self.phoneNumber, self.number, self.hobby
            ];
}

- (void)setValue:(id)value forKey:(NSString *)key
{
    // super 必须写
    [super setValue:value forKey:key];
    if ([key isEqualToString:@"number"]) {
        self.number = [value integerValue];
    }
}
原文地址:https://www.cnblogs.com/mengfanrong/p/5273189.html