美文网首页
JSON 转Model (runtime 转)

JSON 转Model (runtime 转)

作者: bingo居然被占了 | 来源:发表于2016-06-12 14:51 被阅读91次

首先demo结构

33260F48-9263-45DC-8901-A1B0D0C856BB.png

1, model, .m文件中不需要写任何东西

B838F142-F2D6-407A-BF4F-44E61DD7FF6C.png

2,创建一个NSObject的扩展

4A9EA170-9907-47AC-A18A-CBFCF23D9154.png

.m文件内容


#import "NSObject+FYJsonToModel.h"

#import <objc/runtime.h>


@implementation NSObject (FYJsonToModel)

// 利用 Runtime
-(void)fy_modelSetWithDictionary:(NSDictionary *)dictionary
{
    if (dictionary == nil){
        return;
    }
    unsigned int outCount =0;

    Ivar*vars =class_copyIvarList([self class], &outCount);//获取到所有的成员变量列表
    //遍历所有的成员变量
    for(int i =0; i < outCount; i++) {
        Ivar ivar = vars[i];//取出第i个位置的成员变量
        const char*propertyName =ivar_getName(ivar);//获取变量名

        NSString*proOcName = [NSString stringWithUTF8String:propertyName];
        
        id jsonValue = [dictionary objectForKey:[proOcName stringByReplacingOccurrencesOfString:@"_" withString:@""]];
        
        object_setIvar(self, ivar,jsonValue);
    }
}
@end

3,使用

A4DF7772-A0B0-416A-9AF5-D2226DDA5DCF.png

我们不生产代码 我们只是代码的搬运工 原文连接

相关文章

  • JSON 转Model (runtime 转)

    首先demo结构 1, model, .m文件中不需要写任何东西 2,创建一个NSObject的扩展 .m文件...

  • Django JSON与Model互转

    model 转JSON字符串 1、【全】JSON字符串转 model 2、【部分】JSON字符串转 model 注...

  • Swift - HandyJSON 使用

    HandyJSON 使用 自定义解析 JSON 转 Model Model 转 JSON

  • 使用runtime json转model

    自己最近在学习runtime,希望在学习过程中做些记录,方便自己后来温习查阅。也希望能帮助到别的同学。 在你的mo...

  • 【iOS开发】MJExtension的使用

    JSON 转 Model JSONString 转 Model Model 中包含其他 Model Model 中...

  • 关于Json转model的一些小想法

    1、json转model的核心设计思想就是使用runtime+递归的思想 runtime的思想: 第一步:取出类里...

  • OC Runtime-JSON转Model

    最近在学习OC Runtime,学习嘛最重要的是实践,所以记录一下在实践过程中实现的一个简单的JSON转Model...

  • 使用runtime->json转model

    分享一个使用runtime进行json转model的方法, 有很多开源库, 比如YYModel, MJExtens...

  • json转model

    然后在lib下创建model文件 运行指令:

  • runtime 字典转model

    想着归档,想着model,突然想到其实我们平常字典转model 的需求其实是更常见的,因此此处也继续笔记下。 依然...

网友评论

      本文标题:JSON 转Model (runtime 转)

      本文链接:https://www.haomeiwen.com/subject/ribedttx.html