• 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

  • 相关阅读:
    Thread中的join使用
    java.lang.NoClassDefFoundError: Ljavax/enterprise/inject/spi/BeanManager;
    org.hibernate.HibernateException: Could not parse configuration: /hibernate.cfg.xm
    maven 中使用jstl 错误解决
    eclipse 安装maven
    前端 JS事件操作
    前端 JS
    前端 固定位置 与绝对定位
    前端 显示与隐藏
    前端 盒子阴影
  • 原文地址:https://www.cnblogs.com/sunnyke/p/4720794.html
Copyright © 2020-2023  润新知