美文网首页数据储存
YYModel使用指引

YYModel使用指引

作者: 守正出奇HJ | 来源:发表于2022-05-11 18:18 被阅读0次

    模型->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

    相关文章

      网友评论

        本文标题:YYModel使用指引

        本文链接:https://www.haomeiwen.com/subject/aukeurtx.html