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 ...
随机推荐
- 微信小程序语音与讯飞语音识别接口(Java),Kronopath/SILKCodec,ffmpeg处理silk,pcm,wav转换
项目需求,需要使用讯飞的语音识别接口,将微信小程序上传的录音文件识别成文字返回 首先去讯飞开放平台中申请开通语音识别功能 在这里面下载sdk,然后解压,注意appid与sdk是关联的,appid在初始 ...
- pta总结2
7-1 币值转换 (20 分) 输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式.如23108元,转换后变成"贰万叁仟壹百零捌"元.为了简 ...
- Actor消息发送及等待结果关键字
class Task extends Actor{ override def act(): Unit = { while(true){ receive({ case SmTask(file) => ...
- PHP游戏概率方法
<?php function createRandomKey($randArr, $rateKey){ $total = 0; $chooseArr = array(); $pow = 0; / ...
- 简单检测PHP运行效率脚本
<?php $stratTime = microtime(true); $startMemory = memory_get_usage(); $a = 1; for($i = 1; $i < ...
- IntelliJ IDEA 使提示不区分大小写
File ==> Settings ==> Editor ==> General ==> Code Completion 第一行 Match case 将默认勾选去掉
- Swagger-概述
前言 Swagger 是一款RESTFUL接口的文档在线自动生成+功能测试功能软件.本文简单介绍了在项目中集成swagger的方法和一些常见问题.如果想深入分析项目源码,了解更多内容,见参考资料. S ...
- Centos下安装配置Mongodb3.6
首先更新系统 yum -y update 1.安装Mongodb 编辑Mongodb安装源 vim /etc/yum.repos.d/mongodb-org-3.6.repo 编辑内容如下: [mon ...
- Nginx模块 ngx_http_limit_req_module 限制请求速率
The ngx_http_limit_req_module module (0.7.21) is used to limit the request processing rate per a def ...
- python与RabbitMQ
RabbitMQ 前言 什么是MQ? MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用 ...