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

jopen 9年前

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

能做什么?

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

    MJExtension和JSONModel、Mantle等框架的区别

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

        如何使用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

          </li> </ul>

          最简单的字典转模型

          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