我目前正在尝试将JSONModel包含到我正在处理的项目中...... 在这个项目中,我需要从Web服务获取数据,它始终返回相同的数据结构,但具有不同的条目... 所以我构建了一个基本的JSONModel类,它应该可以处理所有的响应。我看起来像这样:
@interface WebserviceResponse : JSONModel
@property (assign, nonatomic) BOOL success;
@property (assign, nonatomic) int code;
@property (strong, nonatomic) NSString *message;
@property (strong, nonatomic) NSString *timestamp;
@property (strong, nonatomic) NSArray *list;
@end
我从Web服务获得的数据总是在“list”中给出,并且始终是字典(但它与我调用的不同API方法不同)。除了错误之外,它是“空”......
如何定义此列表属性以简单地解析给定的词典? 使用给定的结构,我的对象始终为null:(
感谢您的帮助, Urkman
答案 0 :(得分:0)
尝试使用BWJSONMatcher,按如下方式声明基本响应数据模型:
@interface WebserviceResponse : NSObject<BWJSONValueObject>
@property (assign, nonatomic) BOOL success;
@property (assign, nonatomic) int code;
@property (strong, nonatomic) NSString *message;
@property (strong, nonatomic) NSString *timestamp;
@property (strong, nonatomic) NSArray *list;
@end
对于每个API,声明一个从 WebserviceResponse 继承的响应模型,并覆盖协议 BWJSONValueObject 中的函数 typeInProperty::
// APIDataModel is the corresponding data model in "list" of this api
- (Class)typeInProperty:(NSString *)property {
if ([property isEqualToString:@"list"]) {
return [APIDataModel class];
}
return nil;
}
可以找到如何使用 BWJSONMatcher 的更详细示例here。