復雜的字典 --> 模型 (模型的數組屬性里面又裝著模型)
模型類Ad和StatusResult定義:
@interface Ad : NSObject
@property (copy, nonatomic) NSString *image;
@property (copy, nonatomic) NSString *url;
@end@interface StatusResult : NSObject/** 數組中存儲模型Status類型數據 */
@property (strong, nonatomic) NSMutableArray *statuses;/** 數組中存儲模型Ad類型數據 */
@property (strong, nonatomic) NSArray *ads;
@property (strong, nonatomic) NSNumber *totalNumber;
@end#import "MJExtension.h"/* 數組中存儲模型數據,需要說明數組中存儲的模型數據類型 */
@implementation StatusResult/* 實現該方法,說明數組中存儲的模型數據類型 */+ (NSDictionary *)mj_ objectClassInArray{ return @{ @"statuses" : @"Status", @"ads" : @"Ad" };}@end
使用實例:
NSDictionary *dict = @{ @"statuses" : @[ @{ @"text" : @"Nice weather!", @"user" : @{ @"name" : @"Rose", @"icon" : @"nami.png" } }, @{ @"text" : @"Go camping tomorrow!", @"user" : @{ @"name" : @"Jack", @"icon" : @"lufy.png" } } ], @"ads" : @[ @{ @"image" : @"ad01.png", @"url" : @"http://www.ad01.com" }, @{ @"image" : @"ad02.png", @"url" : @"http://www.ad02.com" } ], @"totalNumber" : @"2014"};//字典轉模型,支持模型的數組屬性里面又裝著模型
StatusResult *result = [StatusResult mj_objectWithKeyValues:dict];//打印博主信息
for (Status *status in result.statuses) {
NSString *text = status.text;
NSString *name = status.user.name;
NSString *icon = status.user.icon;
NSLog(@"text=%@, name=%@, icon=%@", text, name, icon);
}
// text=Nice weather!, name=Rose, icon=nami.png// text=Go camping tomorrow!, name=Jack, icon=lufy.png//打印廣告
for (Ad *ad in result.ads) {
NSLog(@"image=%@, url=%@", ad.image, ad.url);
}// image=ad01.png, url=http://www.ad01.com// image=ad02.png, url=http://www.ad02.com
原文有更詳細的其他類型字典模型轉化