JSON和模型之间最快捷方便的转换iOS框架:MJExtension

阅读目录

 

MJExtension是JSON和模型之间最快捷方便的转换iOS框架。

能做什么?

  • MJExtension是一套字典和模型之间互相转换的超轻量级框架
  • MJExtension能完成的功能
    • 字典(JSON)-->模型(Model)
    • 模型(Model)-->字典(JSON)
    • 字典数组(JSON Array)-->模型数组(Model Array)
    • 模型数组(Model Array)-->字典数组(JSON Array)
  • 详尽用法主要参考 main.m中的各个函数 以及NSObject+MJKeyValue.h

MJExtension和JSONModel、Mantle等框架的区别

  • 转换速率:
    • 最近一次测试表明:MJExtension>JSONModel>Mantle
    • 各位开发者也可以自行测试
  • 具体用法:
    • JSONModel:要求所有模型类必须继承自JSONModel基类
    • Mantle:要求所有模型类必须继承自MTModel基类
    • MJExtension:不需要你的模型类继承任何特殊基类,毫无污染,毫无侵入性

如何使用MJExtension

  • cocoapods导入:pod 'MJExtension'
  • 手动导入:
    • 将MJExtensionExample/MJExtensionExample/MJExtension文件夹中的所有源代码拽入项目中
    • 导入主头文件:#import "MJExtension.h"
      ?
      1
      2
      3
      4
      5
      6
      7
      8
      MJExtension.h
      MJConst.h               MJConst.m
      MJFoundation.h          MJFoundation.m
      MJIvar.h                MJIvar.m
      MJType.h                MJType.m
      NSObject+MJCoding.h     NSObject+MJCoding.m
      NSObject+MJIvar.h       NSObject+MJIvar.m
      NSObject+MJKeyValue.h   NSObject+MJKeyValue.m

最简单的字典转模型

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
typedef enum {
     SexMale,
     SexFemale
} Sex;
 
@interface User : NSObject
@property (copy, nonatomic) NSString *name;
@property (copy, nonatomic) NSString *icon;
@property (assign, nonatomic)  int age;
@property (assign, nonatomic)  double height;
@property (strong, nonatomic) NSNumber *money;
@property (assign, nonatomic) Sex sex;
@end
 
NSDictionary *dict = @{
                @ "name" : @ "Jack" ,
                @ "icon" : @ "lufy.png" ,
                @ "age" : @20,
                @ "height" : @ "1.55" ,
                @ "money" : @100.9,
                @ "sex" : @(SexFemale)
             };
 
// 将字典转为User模型
User *user = [User objectWithKeyValues:dict];
 
NSLog(@ "name=%@, icon=%@, age=%d, height=%@, money=%@, sex=%d" ,
     user.name, user.icon, user.age, user.height, user.money, user.sex);
// name=Jack, icon=lufy.png, age=20, height=1.550000, money=100.9, sex=1
核心代码
  • [User objectWithKeyValues:dict]

项目主页:http://www.open-open.com/lib/view/home/1426233573592

转载于:https://www.cnblogs.com/sunnyke/p/4720794.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值