码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2016-02-25 12:00:49      阅读:2068      评论:0      收藏:0      [点我收藏+]

标签:

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);

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

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

标签:

原文地址:http://www.cnblogs.com/Ninesday/p/5216264.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!