當前位置:成語大全網 - 新華字典 - YYModel使用指引

YYModel使用指引

模型->jsonString

方式1.

NSDictionary *paramDict = getTakeupInfo.yy_modelToJSONObject;

NSData *jsonData = [NSJSONSerialization dataWithJSONObject:paramDict/*getTakeupInfo.mj_keyValues*/

options:NSJSONWritingPrettyPrinted

? error:nil ];

NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];

方式2 [queryCalendarInfo yy_modelToJSONString];

模型->字典

[outputInfo yy_modelToJSONObject];

jsonString -> 模型

id param = [outputInfo.D yy_modelToJSONObject];

AddEventCallbackInfo *addEventCallbackInfo = [AddEventCallbackInfo yy_modelWithDictionary:param];

id paramDict = [inputInfo yy_modelToJSONObject];

InputInfo *inputInfo = [InputInfo yy_modelWithDictionary:parameters];

NSData *jsonData = [(NSString *)self.eventInfo.su dataUsingEncoding : NSUTF8StringEncoding];

NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:jsonData options:kNilOptions error:NULL];

InputInfo *inputInfo = [InputInfo yy_modelWithDictionary:dict];

NSString *str = userTakeupInfo.P;

NSData *jsonData = [(NSString *)str dataUsingEncoding : NSUTF8StringEncoding];

ContactInfo *contactInfo = nil;

if(jsonData){

NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:jsonData options:kNilOptions error:NULL];

contactInfo = [ContactInfo yy_modelWithDictionary:dict];

}

jsonString ->模型數組

NSArray *array = [NSArray yy_modelArrayWithClass:[UserTakeupInfo class] json:outputInfo.D];

NSMutableArray *userTakeupInfoArray = [NSMutableArray arrayWithArray:array];

模型數組 -> JsonString

[contactInfoArray yy_modelToJSONString]

模型數組->字典數組

id param = [corpDomainArray yy_modelToJSONObject];

json字典數組-> 字典數組

NSData *jsonData = [(NSString *)dataJson dataUsingEncoding : NSUTF8StringEncoding];

NSArray *dictDataArray = [NSJSONSerialization JSONObjectWithData:jsonData options:kNilOptions error:NULL];

#import <YYModel/YYModel.h>

+ (NSDictionary *)modelContainerPropertyGenericClass {

return @{@"p" : [PageInputInfo class]

};

}

TokenLoginOutServerInfo 中的IPList無法進行轉換對應屬性 ,手動再次轉換了壹次

NSData *jsonData = [(NSString *)serverInfo dataUsingEncoding : NSUTF8StringEncoding];

NSDictionary *param = [NSJSONSerialization JSONObjectWithData:jsonData options:kNilOptions error:NULL];

// id param = [serverInfo yy_modelToJSONObject];

TokenLoginOutServerInfo *outServerInfo = [TokenLoginOutServerInfo yy_modelWithDictionary:param];

NSArray *array = [NSArray yy_modelArrayWithClass:[TokenLoginOutServerIPInfo class] json:[param objectForKey:@"IPList"]];

outServerInfo.IPList = array;

//返回壹個 Dict,將 Model 屬性名對映射到 JSON 的 Key。

+ (NSDictionary *)modelCustomPropertyMapper {

return @{@"name" : @"n",

? @"page" : @"p",

? @"desc" : @"ext.desc",

? @"bookID" : @[@"id",@"ID",@"book_id"]};

}

// 字典轉模型

+ (nullable instancetype)modelWithDictionary:(NSDictionary *)dictionary;

// json轉模型

+ (nullable instancetype)modelWithJSON:(id)json;

// 模型轉NSObject

- (nullable id)modelToJSONObject;

// 模型轉NSData

- (nullable NSData *)modelToJSONData;

// 模型轉json字符串

- (nullable NSString *)modelToJSONString;

// 模型深拷貝

- (nullable id)modelCopy;

// 判斷模型是否相等

- (BOOL)modelIsEqual:(id)model;

// 屬性數據映射,用來定義多樣化數據時轉換聲明

+ (nullable NSDictionary<NSString *, id> *)modelCustomPropertyMapper;

// 屬性自定義類映射,用來實現自定義類的轉換聲明

+ (nullable NSDictionary<NSString *, id> *)modelContainerPropertyGenericClass;

// 屬性黑名單,該名單屬性不轉換為model

+ (nullable NSArray<NSString *> *)modelPropertyBlacklist;

// 屬性白名單,只有該名單的屬性轉換為model

+ (nullable NSArray<NSString *> *)modelPropertyWhitelist;

// JSON 轉為 Model 完成後,該方法會被調用,返回false該model會被忽略

// 同時可以在該model中做壹些,轉換不能實現的操作,如NSDate類型轉換

- (BOOL)modelCustomTransformFromDictionary:(NSDictionary *)dic;

// Model 轉為 JSON 完成後,該方法會被調用,返回false該model會被忽略

// 同時可以在該model中做壹些,轉換不能實現的操作,如NSDate類型轉換

- (BOOL)modelCustomTransformToDictionary:(NSMutableDictionary *)dic