您的位置:首页 > 移动开发 > IOS开发

ios jsonModel解析数组

2016-05-28 15:36 375 查看
jsonModel解析一般的数据比较简单,这里记录一下困扰了一个下午的解析数组(关键是第二步,即红色部分,如果你已使用过jsonmodel,看红色部分即可):

eg.一段json数据

{

    "code": 0,

    "info": "success",

    "data": {

          "uid": "10299",

         "join": [

            {

                "name": "wqm",

                "avater": "http:\/\/dev.nczmall.com\/images\/default_user_icon.png",

                "time": "2016-05-20 15:08:45"

            },

            {

                "name": "wqm1",

                "avater": "http:\/\/dev.nczmall.com\/images\/default_user_icon.png",

                "time": "2016-05-20 15:08:45"

           }

        ]

}

1 .先建join模型

JoinModel.h

 @interface JoinModel : JsonModel

 @property (nonatomic, copy) NSString *name;

 @property (nonatomic, copy) NSString *avater;

 @property (nonatomic, copy) NSString *time;

@end

JoinModel.cpp

@implementation JoinModel

@end

2 data模型(关键步骤)

DataModel.h

@protocal JoinModel    //不是我写错,需要protocal声明JoinModel为协议,否则jsonmodel无法正确解析数组(JoinModel和上面1中的jsonModel命名要相同)

@end

 @interface DataModel: JsonModel {
    @property (nonatomic, copy) NSString* uid;

    @property (nonatomic, strong) NSArray<JoinModel> *join;   //JoinModel是协议,尖括号内没用星号!

 }

@end

DataModel.cpp

@implementation DataModel

@end

3.整个json数据模型

PrizeModel.h

@protocal PrizeModel

@end

 @interface PrizeModel: JsonModel {
    @property (nonatomic, assign) NSInteger code;

    @property (nonatomic, copy) NSString* info;

    @property (nonatomic, strong) DataModel *data;

 }

@end

PrizeModel.cpp

@implementation PrizeModel

@end

4.使用

PrizeModel *model =[[PrizeModel alloc] initWithDictionary:dataDic error: nil]; //dataDic为生面的json数据。

然后在model中就可以看到解析好的数据数据了。(还没看到,联系我(qq: 1246489125))
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: