iOS MJExtension的使用
前言:
MJExtension是iOS的字典装模型的一个第三方框架。相对于JSONKit和SBJson相比MJExtension更简单易用、功能更强大。
安装:
使用CocoaPods导入(CocoaPods的使用方法在其他文档里面会介绍)
pod 'MJExtension'
在使用该框架的文件里面导入头文件(推荐在pch文件中导入)
#import "MJExtension.h"
格式单一的字典(没有嵌套),转模型:
@interface User : NSObject
@property (copy, nonatomic) NSString *name;
@property (copy, nonatomic) NSString *sex;
@property (copy, nonatomic) NSString *age;
@end
NSDictionary *dict = @{
@"name" : @"Jack",
@"sex" : @"男",
@"age" : @"20"
} User *UserModel = [User Mj_objectWithKeyValues:dict];
字典嵌套字典:
@interface People : NSObject
@property (copy, nonatomic) User *User;(上面的User类)
@property (copy, nonatomic) NSString *height;
@property (copy, nonatomic) NSString *wight;
@end NSDictionary *dict = @{
@"height":@"170"
@"wight":@"70"
@"user":@{
@"name" : @"Jack",
@"sex" : @"男",
@"age" : @"20" }
}
Poeple *peopleModel = [Pople mj_objectWithKeyValues:dict];
字典嵌套数组,数组里面还有字典:
@interface People : NSObject
@property (copy, nonatomic) NSarray *UserArr;(上面的User类)
@property (copy, nonatomic) NSString *height_2;
@property (copy, nonatomic) NSString *wight;
@end
@implementation People
+(NSDictionary *)mj_objectClassInArray//模型中数组里面的模型
{
return @{
@"UserArr":@"User",//UserArr是自定义的属性名,User是嵌套的字典类名
};
}
+(NSDictionary *)mj_replacedKeyFromPropertyName
{
return @{
@"UserArr":@"User",//模型和字典的字段不对应需要转化
};
}
@end
NSDictionary *dict = @{
@"height":@"170"
@"wight":@"70"
@"UserArr":@[
@{ @"name" : @"Jack", @"sex" : @"男",
@"age" : @"20"
},
@{
@"name" : @"li",
@"sex" : @"女",
@"age" : @"30"
}
]
} People *people = [People mj_objectWithKeysValues:dict]; 数组转化成模型数组 NSArray *arr = @[
@{
@"name":@"Jack",
@"sex":@"男",
@"age":@"25"
}
@{
@"name":@@"wang",
@"sex":@"男",
@"age":@"26"
}
]
NSArray *UserArrModel = [User mj_objectArrayWithValuesArray:arr];
GitHub地址 https://github.com/CoderMJLee/MJExtension
iOS MJExtension的使用的更多相关文章
- iOS开发——MJExtension复杂数组用法
最近在看MJExtension的Demo,发现了一个plist文件直接转数组模型的方法.以前研究过但是浅尝辄止没有解决,这几天有时间,好好看了看,找到了解决办法,与大家分享. 如果大家的项目中有这种嵌 ...
- iOS开发——网络篇——JSON和XML,NSJSONSerialization ,NSXMLParser(XML解析器),NSXMLParserDelegate,MJExtension (字典转模型),GDataXML(三方框架解析XML)
一.JSON 1.JSON简介什么是JSONJSON是一种轻量级的数据格式,一般用于数据交互服务器返回给客户端的数据,一般都是JSON格式或者XML格式(文件下载除外) JSON的格式很像OC中的字典 ...
- iOS开源JSON解析库MJExtension
iOS中JSON与NSObject互转有两种方式:1.iOS自带类NSJSONSerialization 2.第三方开源库SBJSON.JSONKit.MJExtension.项目中一直用MJExte ...
- IOS 字典模型互转框架 MJExtension
IOS 字典模型互转框架 MJExtension 能做什么? MJExtension是一套字典和模型之间互相转换的超轻量级框架 MJExtension能完成的功能 字典(JSON) --> ...
- iOS开发小技巧--利用MJExtension解决数据结构复杂的模型转换
一.开发中难免会遇到,系统返回的数据中字典套集合,集合里面又套一层字典,然后字典里面还有字典或者集合等等的复杂结构的数据...MJExtension轻松搞定这类问题 1.解决方法一: 例:百思项目中帖 ...
- iOS开发——笔记篇&关于字典plist读取/字典转模型/自定义View/MVC/Xib的使用/MJExtension使用总结
关于字典plist读取/字典转模型/自定义View/MVC/Xib的使用/MJExtension使用总结 一:Plist读取 /************************************ ...
- iOS字典转模型MJExtension使用
如果项目是纯OC的建议使用,MJExtension是一套字典和模型之间互相转换的超轻量级框架,可以轻松完成: 字典(JSON) --> 模型(Model) 模型(Model) --> 字典 ...
- 序列化框架MJExtension详解 + iOS ORM框架
当开发中你的模型中属性名称和 字典(JSON/XML) 中的key 不能一一对应时, 或者当字典中嵌套了多层字典数组时..., 以及教你如何用 MJExtension 配置类来统一管理你的模型配置, ...
- iOS 中使用 MJExtension 遇到 关键字(id) 怎么办
MJExtension 是个人比较喜欢用的json 转model 的软件,当遇到系统关键字时就会出现崩溃,解决方式如下 1.建立Modle 解析类,服务返回数据中带有id,这个时候用字典转Mode(m ...
随机推荐
- springboot集成mybatis源码分析-启动加载mybatis过程(二)
1.springboot项目最核心的就是自动加载配置,该功能则依赖的是一个注解@SpringBootApplication中的@EnableAutoConfiguration 2.EnableAuto ...
- 在Pythonfor循环中如何获取循环次数?
在Python的for循环里,循环遍历可以写成: for item in list: print item 它可以遍历列表中的所有元素,但是有什么方法可以知道到目前为止我循环了多少次? 想到的替代方案 ...
- Python学习笔记九
Python学习笔记之九 为什么要有操作系统 管理硬件,提供接口. 管理调度进程,并且将多个进程对硬件的竞争变得有序. 操作系统发展史 第一代计算机:真空管和穿孔卡片 没有操作系统,所有的程序设计直接 ...
- Integer Replacement
https://leetcode.com/problems/integer-replacement/#/solutions 这题是一道典型的搜索问题,我采用广度搜索,可以直接输出最短路径.这题的tes ...
- 这里主要展示在Win7下怎么用IIS发布局域网站
首先对IIS做一个简要的介绍: IIS(InternetInformationServices)互联网信息服务的简称.本质是一种Web(网页)服务组件,其中包含Web.FTP和SMTP三大服务器,分别 ...
- 圆周率pi π 与 角度的对应关系
圆周率pi π 与 角度的对应关系 π 180° π/2 90° π/4 45° π/6 30°
- 20172328 暑假作业 之 实现安卓小程序Enjoy-all
20172328 暑假作业 之 实现安卓小程序Enjoy-all 项目介绍 项目名称: Enjoy - all 项目简介: 本项目基于Java语言和Anroid Studio软件,实现了简单的冒泡.屏 ...
- webpack报错需要合适的loader
以前做vue项目都好好的,最近做react,公共配置感觉加个jsx就可以了吧,然而不是这样的. 一.问题描述 You may need an appropriate loader to handle ...
- Codeforces.1139D.Steps to One(DP 莫比乌斯反演)
题目链接 啊啊啊我在干什么啊.怎么这么颓一道题做这么久.. 又记错莫比乌斯反演式子了(╯‵□′)╯︵┻━┻ \(Description\) 给定\(n\).有一个初始为空的集合\(S\).令\(g\) ...
- Hibernate 配置文件的基础配置
Hibernate 配置文件主要用于配置数据库连接和 Hibernate运行时所需的各种属性 每个 Hibernate 配置文件对应一个 Configuration 对象 Hibernate.cfg. ...