JSON 数据的系统解析

时间:2024-01-18 08:50:20
- (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];
}
}