閑話不表直接上代碼,具體原理會在接下的篇幅中補上
object-c
方法-,聲明一個Book類和一個Author類教届,在Book類中有一個author屬性惹资。
分別聲明-(id)initWithDict:(NSDictionary*)dict;和+(id)authWithDict:(NSDictionary*)dict;方法丹拯。
在Book類中和Author類的.m文件中實現(xiàn)-(id)initWithDict:(NSDictionary*)dict;和+(id)authWithDict:(NSDictionary*)dict;方法
測試結(jié)果
方法二、使用- (void)setValuesForKeysWithDictionary:(NSDictionary*)keyedValues;批量賦值速警,在Book .h的頭文件中可以這樣聲明-(void)setValue:(id)value forUndefinedKey:(NSString *)key;方法粪糙,并在.m文件里實現(xiàn)强霎。
為了實現(xiàn)對嵌套json的處理,我們需要重寫-(void)setValue:(id)value forKey:(NSString *)key方法蓉冈,并且實現(xiàn)-(void)setValue:(id)value forUndefinedKey:(NSString *)key方法城舞,這樣當(dāng)json中鍵值對多余模型類中的屬性時不至于直接crash
測試
swift實現(xiàn)
定義一個Student和Book類,Student類中有一個book屬性寞酿,在book類中實現(xiàn)了override func setValue(value: AnyObject?, forUndefinedKey key: String)方法家夺,由于demo比較簡單直接上代碼
測試
demo下載地址:https://github.com/luguoliang/Model
總結(jié):文筆枯澀,技術(shù)有限伐弹,如果錯誤拉馋,誠懇指出,共同學(xué)習(xí)進(jìn)步惨好。