iOS中将后台JSON数据转化为模型的总结
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数据转化为模型的总结相关推荐
- 解决后台json数据返回的字段需要替换的问题
有时候后台json数据返回的字段含有"id",也有可能是有时候为了减少代码的冗余,两页面之间只是数据模型个别属性的区别,所以这时候最好是用到模型属性的替换,用新的属性替换返回的js ...
- iOS开发——XML/JSON数据解析
NSJSONSerialization 接下来就正式开始.苹果官方给出的解析方式是性能最优越的,虽然用起来稍显复杂. 首先我们在上面已经有了我希望得到的信息的网站的API给我们的URL,在OC中,我要 ...
- java spring mvc json ajax 优势_SpringMVC后台json数据前台ajax获取不到!!!急求解答!!!...
//后端 @RestController @RequestMapping(value = "/loan") public class LoanApplyController ext ...
- iOS中解析json数据
同Android中的jsonarray和jsonobject相同,iOS中json分为nsarray和jsonobject, []--------jsonarray/nsarray; {}------ ...
- IOS中的JSON数据的解析
解析Json数据 1 //加载.json文件 2 NSString *path = [[NSBundle mainBundle]pathForResource:@"product.json& ...
- ios开发值json数据文件的存取
将Json存进本地文件夹 NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMas ...
- 怎么把json数据转化为数组_RESTful API 返回统一JSON数据格式是怎么实现的?
关于 Spring 的全局处理,我有两方面要说: 统一数据返回格式 统一异常处理 为了将两个问题说明清楚,将分两个章节分别说明,本章主要说第一点 有童鞋说,我们项目都做了这种处理,就是在每个 API ...
- layui做折线图_详解layuiAdmin单页版根据后台json数据动态生成左侧菜单栏
layuiAdmin单页版根据后台 使用模板方式加载菜单 lay-url="菜单接口" lay-headers="将token带入请求头",如果没有,去掉就行 ...
- 后台数据已经传好JSON数据,前台页面却加载不出来或者是显示正在加载中?
例如一个简单的实例 前端使用的是amazeUI,后端使用的是SSH 排查路径: ajax地址先检查是否写对? ajax是否已经发送? 看控制台是否接收到了json数据 检查自己封装的后台json数据是 ...
最新文章
- 必须进行支持的游戏方可使用此功能_C#8.0 新增功能
- execl按数值分类
- ajax 中$.each(json,function(index,item){ }); 中的2个参数表示什么意思?
- 使用swiftenv管理swift版本
- C++认识容器的迭代器
- 201712-2-游戏
- 记录小新pro13 Intel版(S540-13IML)安装hackintosh的一些要点
- 三菱a系列motion软体_三菱MDSDMSPV3系列连接接口说明
- windows下icns转png或ico
- Abaqus6.14+VS2013+IVF2013安装教程
- peewee mysql_tornado+peewee-async+peewee+mysql(一)
- 【时间之外】面向监狱的编程?该学学网络安全法了(3)
- 小米路由器安装花生壳实现外网映射
- 笔记本电脑无法连接无线网问题
- Kalman Filter 通俗讲解
- C语言#include的用法
- linux环境下php安装sqlsrv扩展连接mssql
- js时间戳转时间年月日时分秒
- 苹果浏览器(Safari浏览器)打开网页“不安全”警告的解决方案
- 重庆市计算机专业高考试题,职业高中高考计算机专业试卷4
热门文章
- 小程序入门学习14--用户管理
- function在mysql里总是出错_如何在MySQL函数中引发错误
- 30岁的你收入是多少?用数据可视化,看看大家的30岁工资真相
- oracle如何取当前日期年月_Oracle获取当前年、月、日的方法
- android layout引入活动,Android 开发入门-活动的基本用法
- c语言求不成功查找长度的代码_哈希查找算法(C语言实现)
- outlook不能保存密码_教大家轻松保存Outlook当中的附件到Onedrive文件夹上
- httplistener java_Java监听器Listener使用详解
- 软件工程导论 03章需求分析
- 利用GitHub搭建一个酷炫免费的个人博客