- 从服务器获取数据之后,接下来我们就需要对数据进行解析,转换成模型;有时候数据比较复杂,搞得我头晕脑胀的,就记录一下
-
数据是这样的
数据样式.png - 取出 templist 数组里面的字典,然后字典里面又有一个数组 Labels
- 创建两个模型,一个是 templist 里面的字典的模型,另外一个是字典里面的的Labels的字典里面的模型
#import <Foundation/Foundation.h>
@interface ModelLabel : NSObject
@property (nonatomic, copy) NSString *content;
@property (nonatomic, copy) NSString *fontcolor;
@property (nonatomic, copy) NSString *bgcolor;
+(instancetype)modelWithDict:(NSDictionary *)dict;
@end
#import "ModelLabel.h"
@implementation ModelLabel
+(instancetype)modelWithDict:(NSDictionary *)dict{
return [[self alloc] initWithDict:dict];
}
-(instancetype)initWithDict:(NSDictionary *)dict{
if (self = [super init]) {
[self setValuesForKeysWithDictionary:dict];
}
return self;
}
-(void)setValue:(id)value forUndefinedKey:(NSString *)key{
}
@end
.h
#import <Foundation/Foundation.h>
#import "ModelLabel.h"
@interface ModelList : NSObject
@property (nonatomic, copy) NSString *time_waitpost;
@property (nonatomic, copy) NSString *bizname;
@property (nonatomic, copy) NSString *bizaddress;
@property (nonatomic, copy) NSString *receiver_name;
@property (nonatomic, copy) NSString *receiver_address;
@property (nonatomic, copy) NSArray <ModelLabel *>*arrLabel;
+(instancetype)modelWithDict:(NSDictionary *)dict;
@end
.m
#import "ModelList.h"
@implementation ModelList
+(instancetype)modelWithDict:(NSDictionary *)dict{
return [[self alloc] initWithDict:dict];
}
-(instancetype)initWithDict:(NSDictionary *)dict{
if (self = [super init]) {
[self setValuesForKeysWithDictionary:dict];
NSMutableArray *arr = [NSMutableArray array];
//取出Labels数组里面的数据转换成ModelLabel模型,如果是模型里面嵌套有其他模型,需要在这里调用其他模型的转模型方法
NSArray *arrTemp = dict[@"Labels"];
for (NSDictionary *dictTemp in arrTemp) {
[arr addObject:[ModelLabel modelWithDict:dictTemp]];
}
self.arrLabel = [arr copy];
}
return self;
}
-(void)setValue:(id)value forUndefinedKey:(NSString *)key{
}
@end
网友评论