MJExtension和JSONModel、Mantle等框架的区别

MJExtension和JSONModel、Mantle等框架的区别

转换速率:

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

最近一次测试表明:MJExtension>JSONModel>Mantle
各位开发者也可以自行测试
具体用法:
JSONModel:要求所有模型类必须继承自JSONModel基类
Mantle:要求所有模型类必须继承自MTModel基类

MJExtension:不需要你的模型类继承任何特殊基类,毫无污染,毫无侵入性

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


回到顶部
如何使用MJExtension

cocoapods导入:pod 'MJExtension'
手动导入:
将MJExtensionExample/MJExtensionExample/MJExtension文件夹中的所有源代码拽入项目中
导入主头文件:#import "MJExtension.h"

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             

回到顶部
最简单的字典转模型

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

核心代码

你可能感兴趣的:(ios,ios)