+ (instancetype)modelWithDict:(NSDictionary *)dict

{id objc =[[self alloc] init];

unsignedint count = 0;

Ivar*ivarList = class_copyIvarList(self, &count);for (int i = 0; i < count; i++) {//实例变量

Ivar ivar =ivarList[i];//获取成员属性名

NSString *ivarName =[NSString stringWithUTF8String:ivar_getName(ivar)];

NSString*key = [ivarName substringFromIndex:1];id value =dict[key];if (value ==nil) {continue;

}//获得成员变量的类型

NSString *ivarType =[NSString stringWithUTF8String:ivar_getTypeEncoding(ivar)];

NSLog(@"ivar - %@, type - %@", ivarName, ivarType);

ivarType= [ivarType stringByReplacingOccurrencesOfString:@"\"" withString:@""];

ivarType = [ivarType stringByReplacingOccurrencesOfString:@"@"withString:@""];

if ([value isKindOfClass:[NSDictionary class]]) {

Class modelClass = NSClassFromString(ivarType);

value = [modelClass modelWithDict:value];

} else if ([value isKindOfClass:[NSArray class]]) {

if ([self respondsToSelector:@selector(arrayContainModelClass)]) {

NSString *type = [self arrayContainModelClass][key];

Class classModel = NSClassFromString(type);

NSMutableArray *arrM = [NSMutableArray array];

for (NSDictionary *dict in value) {

id model = [classModel modelWithDict:dict];

if (model) {

[arrM addObject:model];

}

}

value = arrM;

}

}

if (value) {

[objc setValue:value forKey:key];

}

}

return objc;

}

ios html转json,iOS 中 Model 和 JSON 互相转换相关推荐

  1. 获取Json对象中Json数组中的一个Json对象

    比如:获取以下数据的data中的数据 { "message": "successful", "resultCode": "0&qu ...

  2. C++:从json文件中读取参数/创建文件夹/位拼接

    目录 1.从json文件中读取参数 2.创建文件夹 3.位运算拼接 1.从json文件中读取参数 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,和xml ...

  3. 将JSON对象中的某个字段进行分组和排序(java实现)

    现在有这样一个数据 { "systemid": "123", "productid": "123", "dat ...

  4. nodejs写入json文件,格式化输出json的方法

    将 JSON 对象写入文件. 使用 fs.writeFile(),模板字面量 和 JSON.stringify() 将 json 对象写入到 .json 文件中. 写入json文件后,都会出现很恶心的 ...

  5. IOS中四种json解析效率比较

    作为一种轻量级的数据交换格式,json正在逐步取代xml,成为网络数据的通用格式. 有的json代码格式比较混乱,可以使用此"http://www.bejson.com/"网站来进 ...

  6. shell脚本 -- 用途替换所有json文件(main.json 除外)中的 ios下载链接

    #!/bin/bash #脚本用途 替换所有json文件(main.json 除外)中的 ios下载链接 #调用格式 "xxx.sh" (脚本名称) "ios||and& ...

  7. iOS最全性能优化(中)

    续 性能优化(上) 9. 重用和延迟加载(lazy load) Views 更多的view意味着更多的渲染,也就是更多的CPU和内存消耗,对于那种嵌套了很多view在UIScrollView里边的ap ...

  8. iOS基础-数据解析方法初步总结-(XML,JSON欢迎指正)

    小时候的记忆与大家一起分享,愿君安好! 解析的基本概念 解析: 从事先规定好的格式中提取数据 解析的前提: 提前约定好格式,数据提供方按照格式提供数据,数据获取方则按照格式获取数据 OS开发常见的解析 ...

  9. ios开发 ajax hook,IOS中的网络拦截总结

    因为业务场景需要,要求对App中网络请求进行拦截.这里包括原生网络请求和WebView里的网络请求.之前我们了解过原生网络请求的拦截是可以实现的,但是WebView中网络请求似乎还不太可能,所以抱着尝 ...

最新文章

  1. Nessus更新到8.5.0
  2. opnet中的例子模型
  3. 喜报 | 安信证券签约神策数据!
  4. sklearn处理文本和分类属性的方式
  5. long 对应oracle,【转】oracle number与java中long、int的对应
  6. 跟踪异常–第5部分–使用Spring进行计划
  7. 【嵌入式基础常识】单片机
  8. 优动漫PAINT软件中混合模式使用实例
  9. 【python教程入门学习】Python字典及基本操作(超级详细)
  10. 固定不动的层(兼容IE6)
  11. 这是一篇转载:HOG特征(这是我看到过的讲的最适合我的博客)
  12. 植树节|晓一叶之理,种一树美好
  13. 218本巴菲特、芒格及段永平推荐书籍下载 (2012-03-31 22:53:28)
  14. SpringBoot中集成Redis实现对redis中数据的解析和存储
  15. win10计算机左边栏,教你把win10任务栏透明设置
  16. 中文用户输入纠错 综述
  17. ANR 弹窗的显示原理
  18. CSS # 通过CSS使图片颜色反转
  19. 将Html网页或者是Aue项目打包成App
  20. AR9331 SDK编译

热门文章

  1. DHT11温湿度传感器模块使用方法和驱动代码实现
  2. Centos 6.8 配置mysql数据库主从同步
  3. Log4j2 - java.lang.NoSuchMethodError: com.lmax.disruptor.dsl.Disruptor
  4. Hive配置文件中配置项的含义详解(收藏版)
  5. 清除Outlook 2013中缓存的邮件地址
  6. Thinkphp列表搜索排序-----查
  7. 【转帖】防止ASP.NET按钮多次提交的办法
  8. 【个人笔记】OpenCV4 C++ 快速入门 19课
  9. pthread_join pthread_exit 线程 Linux函数 线程退出 线程等待
  10. 显卡= GPU+显存(八)