数据转模型
来源:互联网 发布:java游戏破解合集 编辑:程序博客网 时间:2024/06/04 00:32
在开发过程中用到的最多的就是数据转模型了,有时候简单点的都是面向字典开发,如果数据字段非常复杂层级结构多的话这个时候写起来就有点麻烦了,那么MJExtension,JSONModel,YYModel,Mantle就派上用场了,或者自定义的话好像也可以的不过,这个时候就看你项目数据结构了,如果真的复杂而且独特的话,联系一下runtime也是不错的,反正我不会~~~
言归正传:我先前一直使用的是JSONModel,来了现在这家公司接手别人源码的时候才知道项目用的是MJExtension,其中也了解过YYModel、Mantle,这两个没有怎么在项目中用到,但是原理都是差不多的,只了解项目中怎么用,不研究内部Runtime!。
先从MJExtension说:
1.
//字典转模型,使用的是mj_objectWithKeyValues:方法
User *user = [User mj_objectWithKeyValues:dict];
2.
// JSON字符串转模型
User *user = [User mj_objectWithKeyValues:jsonString]
3.
//字典转模型,模型里面含有模型
Status *status = [Status mj_objectWithKeyValues:dict];
4.模型的数组里面有模型
只需要在模型的.m文件里面实现这个方法就行了;
;
5.数据中有关键字id desciption等字段:
实现下面方法:
YYModel的用法:
1.// 将 JSON (NSData,NSString,NSDictionary) 转换为 Model:
ZHZYYModel *model = [ZHZYYModel modelWithJSON:_dic];
2.属性字段关键字的时候或者不一样的时候:
实现下面的方法:
3.如果模型数据有模型的话不需要怎么特殊处理,如果子模型中有关键字的话或者字段不一样的话同理2实现上面的方法 就行!
4.模型数组有模型的话:在模型.m文件中实现
+ (NSDictionary *)modelContainerPropertyGenericClass {
/*
以 Class 或 Class Name 的形式
*/
return @{@"shadows" : [Shadow class],
@"borders" : Border.class,
@"attachments" : @"Attachment" };
}
5.YYModel自动校验:
6.白名单 黑名单:就是自动忽略某些属性
JSONModel的使用:记住一点就是创建模型的时候一定要集成自JSONModel
上述两个有两个特性 一个是Optional这个可以允许数据返回为NULL切不会报错,Ignore是忽略这个属性,数据返回字段可以没有 有的话直接赋值!
2.如果所有属性都是可选的 实现这个方法:
+(BOOL)propertyIsOptional:(NSString*)propertyName
{
return YES;
}
3.模型属性有模型嵌套的话 方法: modelWithJSON
4. 模型属性数组包含模型的话只需要遵守以下模型协议就行:
5.多级映射:实现这个方法。
- 数据转模型
- mj数据转模型
- ios-json数据转模型
- iphone模型数据 实例
- 用户数据分析模型
- WPF数据绑定模型
- Model数据实体模型
- 关于数据加密模型
- 【数据挖掘】代价模型
- 通用数据权限模型
- 数据存储模型
- 网站数据分析模型
- SpringMVC处理模型数据
- 处理模型数据
- 4.处理模型数据
- 销售数据分析模型
- 数据挖掘有关模型
- springmvc006-处理模型数据
- 循环队列实现
- Win10新建360浏览器快捷菜单
- java api文档的阅读技巧
- 跨越opengl和d3d的鸿沟(二):现代opengl
- Thinkphp+Jqueryfrom图片异步上传预览
- 数据转模型
- Realm官方文档笔记(一)
- Android 中性能优化之lint使用总结
- echarts地图生成
- openvpn在centos 6.5上的安装
- Mql4 自定义函数模板
- 面向对象程序设计上机练习十二(运算符重载)
- 常用的数据源配置
- OCSS的现状与发展趋势