闲话不表直接上代码,具体原理会在接下的篇幅中补上
object-c
方法-,声明一个Book类和一个Author类,在Book类中有一个author属性。
分别声明-(id)initWithDict:(NSDictionary*)dict;和+(id)authWithDict:(NSDictionary*)dict;方法。
在Book类中和Author类的.m文件中实现-(id)initWithDict:(NSDictionary*)dict;和+(id)authWithDict:(NSDictionary*)dict;方法
测试结果
方法二、使用- (void)setValuesForKeysWithDictionary:(NSDictionary*)keyedValues;批量赋值,在Book .h的头文件中可以这样声明-(void)setValue:(id)value forUndefinedKey:(NSString *)key;方法,并在.m文件里实现。
为了实现对嵌套json的处理,我们需要重写-(void)setValue:(id)value forKey:(NSString *)key方法,并且实现-(void)setValue:(id)value forUndefinedKey:(NSString *)key方法,这样当json中键值对多余模型类中的属性时不至于直接crash
测试
swift实现
定义一个Student和Book类,Student类中有一个book属性,在book类中实现了override func setValue(value: AnyObject?, forUndefinedKey key: String)方法,由于demo比较简单直接上代码
测试
demo下载地址:https://github.com/luguoliang/Model
总结:文笔枯涩,技术有限,如果错误,诚恳指出,共同学习进步。