前言:

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的使用的更多相关文章

  1. iOS开发——MJExtension复杂数组用法

    最近在看MJExtension的Demo,发现了一个plist文件直接转数组模型的方法.以前研究过但是浅尝辄止没有解决,这几天有时间,好好看了看,找到了解决办法,与大家分享. 如果大家的项目中有这种嵌 ...

  2. iOS开发——网络篇——JSON和XML,NSJSONSerialization ,NSXMLParser(XML解析器),NSXMLParserDelegate,MJExtension (字典转模型),GDataXML(三方框架解析XML)

    一.JSON 1.JSON简介什么是JSONJSON是一种轻量级的数据格式,一般用于数据交互服务器返回给客户端的数据,一般都是JSON格式或者XML格式(文件下载除外) JSON的格式很像OC中的字典 ...

  3. iOS开源JSON解析库MJExtension

    iOS中JSON与NSObject互转有两种方式:1.iOS自带类NSJSONSerialization 2.第三方开源库SBJSON.JSONKit.MJExtension.项目中一直用MJExte ...

  4. IOS 字典模型互转框架 MJExtension

    IOS 字典模型互转框架 MJExtension   能做什么? MJExtension是一套字典和模型之间互相转换的超轻量级框架 MJExtension能完成的功能 字典(JSON) -->  ...

  5. iOS开发小技巧--利用MJExtension解决数据结构复杂的模型转换

    一.开发中难免会遇到,系统返回的数据中字典套集合,集合里面又套一层字典,然后字典里面还有字典或者集合等等的复杂结构的数据...MJExtension轻松搞定这类问题 1.解决方法一: 例:百思项目中帖 ...

  6. iOS开发——笔记篇&关于字典plist读取/字典转模型/自定义View/MVC/Xib的使用/MJExtension使用总结

    关于字典plist读取/字典转模型/自定义View/MVC/Xib的使用/MJExtension使用总结 一:Plist读取 /************************************ ...

  7. iOS字典转模型MJExtension使用

    如果项目是纯OC的建议使用,MJExtension是一套字典和模型之间互相转换的超轻量级框架,可以轻松完成: 字典(JSON) --> 模型(Model) 模型(Model) --> 字典 ...

  8. 序列化框架MJExtension详解 + iOS ORM框架

    当开发中你的模型中属性名称和 字典(JSON/XML) 中的key 不能一一对应时, 或者当字典中嵌套了多层字典数组时..., 以及教你如何用 MJExtension 配置类来统一管理你的模型配置, ...

  9. iOS 中使用 MJExtension 遇到 关键字(id) 怎么办

    MJExtension 是个人比较喜欢用的json 转model 的软件,当遇到系统关键字时就会出现崩溃,解决方式如下 1.建立Modle 解析类,服务返回数据中带有id,这个时候用字典转Mode(m ...

随机推荐

  1. 【EasyNetQ】- 发布/订阅模式

    EasyNetQ支持的最简单的消息传递模式是发布/ 订阅.这种模式是消除消费者信息提供者的绝佳方式.出版商简单地向全世界说,“这已经发生了”或“我现在有了这些信息”.它不关心是否有人正在倾听,他们可能 ...

  2. SparkCore | Rdd| 广播变量和累加器

    Spark中三大数据结构:RDD:  广播变量: 分布式只读共享变量: 累加器:分布式只写共享变量: 线程和进程之间 1.RDD中的函数传递 自己定义一些RDD的操作,那么此时需要主要的是,初始化工作 ...

  3. Spark缓存策略

    当对同一个rdd多次执行action时,如果在磁盘上则每次执行action都会从磁盘将数据加载,如果将其缓存到内存中会提高再次action的读取速度,Spark缓存主要有cache()和persist ...

  4. Update修改方法判断该ID的数据是否超过24小时,超过不许修改

    @PostMapping("/update") public Result projectUpdate(@RequestBody ProjectVoEntity projectvo ...

  5. B - Housewife Wind-树链剖分-树状数组

    思路:边权转化到点权上,统一把每一条边的边权集中到深度较深的点上去. #include<stdio.h> #include<iostream> #include<cstr ...

  6. 入门级----黑盒测试、白盒测试、手工测试、自动化测试、探索性测试、单元测试、性能测试、数据库性能、压力测试、安全性测试、SQL注入、缓冲区溢出、环境测试

    黑盒测试 黑盒测试把产品软件当成是一个黑箱子,只有出口和入口,测试过程中只要知道往黑盒中输入什么东西,知道黑盒会出来什么结果就可以了,不需要了解黑箱子里面是如果做的. 即测试人员不用费神去理解软件里面 ...

  7. python一些语法糖用法

    @修饰符 '@'符号用作函数修饰符是python2.4新增加的功能,修饰符必须出现在函数定义前一行,不允许和函数定义在同一行.也就是说@A def f(): 是非法的. 只可以在模块或类定义层内对函数 ...

  8. CSS3常用

    1.user-select新增特性,主流浏览器都支持 -webkit-user-select: none;  /* Chrome all / Safari all /opera15+*/  -moz- ...

  9. Java虚拟机-对象的创建和访问

    一.对象的创建: 创建对象在java上面是很简单的,使用new关键字就可以了,但是其实在虚拟机中,java对象的创建是一个复杂的过程. 当java虚拟机遇到一个new的指令的时候,对象创建的程序正式启 ...

  10. 2018-2019-1 20189210 《Linux内核原理与分析》第三周作业

    一.学习笔记 计算机的"三大法宝" 1.程序存储计算机. 2.函数调用对栈.堆栈的作用是:记录函数调用框架.传递函数参数.保存返回值地址.提供函数内部局部变量的存储空间.函数调用堆 ...