1.

再拿到了Json数据后怎么把字典写到数组里面去呢?

  方法1:用最原始的方法  

  

-(instancetype)initWithDict:(NSDictionary *)dict {

if(self = [super init]) {

[self setValuesForKeysWithDictionary:dict];

}

return self;

}

+(instancetype)modelWithDict:(NSDictionary *)dict {

return [[self alloc] initWithDict:dict];

}

//这个方法一定要写上  ,不然就回报警告的,什么警告呢? undefiedforKey

- (void)setValue:(id)value forUndefinedKey:(NSString *)key

{

}

这行代码的作用就是为了避免在你的json'数据的字典在很多个的情况下  然后呢你的.h文件里面可能只有几个字段 而并没有吧json数据里面的全部字段用上的时候这个时候这个就起作用了,这行代码的就可以把多余的字段因为没有一一的键值对应给忽略了

比如这个时候json数据的层级结构是这样的

{"result": true, "page": 1, "totalPage": 1, "dicMap": {}, "varList": [ {}, {} ] }

//

你可以这样去解析数据

    NSArray *data  = dict[@"varList"];

for(NSDictionary *dict3 in data) {

ZYGuess *guess = [ZYGuess modelWithDict:dict3];

NSLog(@" -----==%@=========",guess);

}

方法2,使用JSONModel框架   

使用说明 :

这个是我建立的模型层次结构

#import "JSONModel.h"

#import "ZYCarouselList.h"

#import "ZYSpecialList.h"

#import "ZYHotSaleList.h"

#import "ZYGuessList.h"

@interface ZYHomeModel : JSONModel

@property (nonatomic,strong) ZYCarouselList *carousel;

@property (nonatomic,strong) ZYSpecialList *special;

@property (nonatomic,strong) ZYHotSaleList *sale;

@property (nonatomic,strong) ZYGuessList *guess;

关键就在这个地方出错了,因为他们这个json数据它们是没有并列的层级关系、

我现在拿到的json数据只是一个接口的数据

@property (nonatomic,strong) ZYCarouselList *carousel;

@property (nonatomic,strong) ZYSpecialList *special;

@property (nonatomic,strong) ZYHotSaleList *sale;

和着3个没有一点的关系

层级结构错了   所以打印出来的模型一直为null

ZYGuessList *model = [[ZYGuessList alloc]initWithDictionary:dict error:NULL];

NSLog(@"%@",model);

这个时候就可以直接转为模型了

转载于:https://www.cnblogs.com/Ninesday/p/5216264.html

iOS中将后台JSON数据转化为模型的总结相关推荐

  1. 解决后台json数据返回的字段需要替换的问题

    有时候后台json数据返回的字段含有"id",也有可能是有时候为了减少代码的冗余,两页面之间只是数据模型个别属性的区别,所以这时候最好是用到模型属性的替换,用新的属性替换返回的js ...

  2. iOS开发——XML/JSON数据解析

    NSJSONSerialization 接下来就正式开始.苹果官方给出的解析方式是性能最优越的,虽然用起来稍显复杂. 首先我们在上面已经有了我希望得到的信息的网站的API给我们的URL,在OC中,我要 ...

  3. java spring mvc json ajax 优势_SpringMVC后台json数据前台ajax获取不到!!!急求解答!!!...

    //后端 @RestController @RequestMapping(value = "/loan") public class LoanApplyController ext ...

  4. iOS中解析json数据

    同Android中的jsonarray和jsonobject相同,iOS中json分为nsarray和jsonobject, []--------jsonarray/nsarray; {}------ ...

  5. IOS中的JSON数据的解析

    解析Json数据 1 //加载.json文件 2 NSString *path = [[NSBundle mainBundle]pathForResource:@"product.json& ...

  6. ios开发值json数据文件的存取

    将Json存进本地文件夹 NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMas ...

  7. 怎么把json数据转化为数组_RESTful API 返回统一JSON数据格式是怎么实现的?

    关于 Spring 的全局处理,我有两方面要说: 统一数据返回格式 统一异常处理 为了将两个问题说明清楚,将分两个章节分别说明,本章主要说第一点 有童鞋说,我们项目都做了这种处理,就是在每个 API ...

  8. layui做折线图_详解layuiAdmin单页版根据后台json数据动态生成左侧菜单栏

    layuiAdmin单页版根据后台 使用模板方式加载菜单 lay-url="菜单接口" lay-headers="将token带入请求头",如果没有,去掉就行 ...

  9. 后台数据已经传好JSON数据,前台页面却加载不出来或者是显示正在加载中?

    例如一个简单的实例 前端使用的是amazeUI,后端使用的是SSH 排查路径: ajax地址先检查是否写对? ajax是否已经发送? 看控制台是否接收到了json数据 检查自己封装的后台json数据是 ...

最新文章

  1. 必须进行支持的游戏方可使用此功能_C#8.0 新增功能
  2. execl按数值分类
  3. ajax 中$.each(json,function(index,item){ }); 中的2个参数表示什么意思?
  4. 使用swiftenv管理swift版本
  5. C++认识容器的迭代器
  6. 201712-2-游戏
  7. 记录小新pro13 Intel版(S540-13IML)安装hackintosh的一些要点
  8. 三菱a系列motion软体_三菱MDSDMSPV3系列连接接口说明
  9. windows下icns转png或ico
  10. Abaqus6.14+VS2013+IVF2013安装教程
  11. peewee mysql_tornado+peewee-async+peewee+mysql(一)
  12. 【时间之外】面向监狱的编程?该学学网络安全法了(3)
  13. 小米路由器安装花生壳实现外网映射
  14. 笔记本电脑无法连接无线网问题
  15. Kalman Filter 通俗讲解
  16. C语言#include的用法
  17. linux环境下php安装sqlsrv扩展连接mssql
  18. js时间戳转时间年月日时分秒
  19. 苹果浏览器(Safari浏览器)打开网页“不安全”警告的解决方案
  20. 重庆市计算机专业高考试题,职业高中高考计算机专业试卷4

热门文章

  1. 小程序入门学习14--用户管理
  2. function在mysql里总是出错_如何在MySQL函数中引发错误
  3. 30岁的你收入是多少?用数据可视化,看看大家的30岁工资真相
  4. oracle如何取当前日期年月_Oracle获取当前年、月、日的方法
  5. android layout引入活动,Android 开发入门-活动的基本用法
  6. c语言求不成功查找长度的代码_哈希查找算法(C语言实现)
  7. outlook不能保存密码_教大家轻松保存Outlook当中的附件到Onedrive文件夹上
  8. httplistener java_Java监听器Listener使用详解
  9. 软件工程导论 03章需求分析
  10. 利用GitHub搭建一个酷炫免费的个人博客