方式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