模型->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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端