前言:

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. vue静态文件处理

    前言: vue-cli在创建项目的时候, 会创建两个存放静态文件的目录, 1. src/assets 2. /static 这两个文件夹在项目中的作用和区别是什么, 我们今天就来看一下 静态资源处理: ...

  2. C/S,B/S应用的区别

    ——————C/S,B/S应用的区别 C/S是指客户端/服务器架构,是一种典型的两层架构,可充分发挥客户端pc的性能,相对减轻服务器的压力. B/S是指浏览器/服务器架构,区别于传统的C/S(客户端/ ...

  3. sqlserver 脚本生成数据库文档

    SELECT       ( then d.name else '' end)表名,       --a.colorder 字段序号,       a.name 字段名,       --(case ...

  4. MIPS(极路由1s[mt7620a])平台OpenWrt路由器系统内的Go应用程序开发

    起因,由于coolpy5核心转换到go语言开发,所以目前超人正在进行相关的技术攻关,在程序编写方面一切都相对顺利.由于coolpy5是一个真正的商业级性能的系统也考滤到coolpy之前的版本已经确定的 ...

  5. jquery动态添加的元素不能直接应用事件方法的时候

    对于由 jQuery 动态生成的元素,如用 jQuery 给元素添加 class,或者直接添加一对 p 标签,不能直接绑定常用的事件,如 click.因为这些元素属于动态生成,除非采用 onclick ...

  6. Spark缓存策略

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

  7. django-request对象

    HTTP 应用的信息是通过 请求报文 和 响应报文 传递的,关于更多的相关知识,可以阅读<HTTP权威指南>获得. 其中 请求报文 由客户端发送,其中包含和许多的信息,而 django 将 ...

  8. url 中文及特殊字符转码

    #include <ctype.h> std::string UrlEncode(const std::string& szToEncode) {    std::string s ...

  9. pytorch简介

    诞生 1.2017年1月,Facebook人工智能研究院(FAIR)团队在GitHub上开源了pyTorch,并迅速占领GitHub热度榜榜首. 常见深度学习框架简介 Theano 1.Theano最 ...

  10. MariaDB基本操作--(创建用户)(转)

    一. 创建用户 命令: CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 说明: username:你将创建的用户名 host:指定该用户 ...