json解析出来的数据库是字典和数组的组合,创建一个model来接收解析数据

来源:互联网 发布:java打印 编辑:程序博客网 时间:2024/06/13 09:49

1、数据库解析出来的数据:

  1. {
  2.    "code": "200",
  3.    "data":
  4.    [
  5.        {
  6.            "user_id": "2",
  7.            "diary_id": "3",
  8.            "image_id": "39",
  9.            "user_nickname": "耳朵在跳动",
  10.            "image_path": "h007.png",
  11.            "diary_time": "2015-05-20 14:30:54",
  12.            "image_address": "福建省 武夷山市 武夷山风景区",
  13.            "image_describe": "会当临绝顶,一览众山小",
  14.            "diary_title": "精雕细琢的园林建筑"
  15.        },
  16.        {
  17.            "user_id": "2",
  18.            "diary_id": "6",
  19.            "image_id": "49",
  20.            "user_nickname": "耳朵在跳动",
  21.            "image_path": "h009.png",
  22.            "diary_time": "2015-04-20 14:30:54",
  23.            "image_address": "福建省 厦门市 鼓浪屿",
  24.            "image_describe": "欧洲风格的小房子",
  25.            "diary_title": "乃是一大堆假山石"
  26.        },
  27.        {
  28.            "user_id": "2",
  29.            "diary_id": "2",
  30.            "image_id": "44",
  31.            "user_nickname": "耳朵在跳动",
  32.            "image_path": "h005.png",
  33.            "diary_time": "2015-01-20 14:30:54",
  34.            "image_address": "中国 台湾省 垦丁",
  35.            "image_describe": "美丽的垦丁",
  36.            "diary_title": "桃花坞里桃花庵"
  37.        }
  38.    ]
  39. }

2、客户端解析数据库:(用AFNetWork框架,发送post请求,用code=200表示解析成功,解析出来的数据中,data里面放的是一个数组,数组里面的数据又是一个个字典,用一个临时变量arr来接收数组数据,然后用一个for in循环来遍历出arr中的三个大的字典,然后将三个字典数据封装成一个TDCollect的model,在model中有一个实例化的方法,可以来获取每个大字典中的九个小的字典数据,然后在将这三个字典存放在一个全局的数组collectArray等待读取

在一个tableview的.m文件中

-(void)sendRequestCollect{

    page++;

    NSString *URL =KHTTPCollect;

    NSDictionary *parameter =@{

                                @"user_id":@(APPDELEGATE.user.user_id),

                                @"page":[NSNumbernumberWithInteger:page]

                                };

    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManagermanager];

    [manager POST:URLparameters:parameter success:^(AFHTTPRequestOperation *operation,id responseObject) {

        NSDictionary *dicAll = (NSDictionary *)responseObject;

        NSString *code = dicAll[@"code"];

        if ([codeisEqualToString:@"200"]) {

            NSMutableArray *arr = [NSMutableArrayarray];

            arr = dicAll[@"data"];

            for (NSDictionary *objin arr) {

                TDCollect *tdcollect = [TDCollectinitWithCollectDic:obj];

                [collectArrayaddObject:tdcollect];

            }

            

            //分页请求

            [self.tableViewreloadData];

            [self.tableView.footerendRefreshing];

        }else{

            [self.tableView.footerendRefreshing];

            [self.tableView.footernoticeNoMoreData];

        }

        

    } failure:^(AFHTTPRequestOperation *operation,NSError *error) {

        

    }];

}

3、TDCollect模板

(1).h文件

@property(copy,nonatomic)NSString *userId;

@property(copy,nonatomic)NSString *diaryId;

@property(copy,nonatomic)NSString *imageId;

@property(copy,nonatomic)NSString *diaryTitle;

@property(copy,nonatomic)NSString *nickname;

@property(copy,nonatomic)NSString *diaryTime;

@property(copy,nonatomic)NSString *imageAddress;

@property(copy,nonatomic)NSString *imageDescribe;

@property(copy,nonatomic)NSString *imagePath;

-(TDCollect *)initWithCollectUserId:(NSString *)userId andDiaryId:(NSString *)diaryId andImageId:(NSString *)imageId andDiaryTime:(NSString *)diaryTime andImageAddress:(NSString *)imageAddress andImageDescribe:(NSString *)imageDescribe andNickname:(NSString *)nickname andDiaryTitle:(NSString *)diaryTitle andImagePath:(NSString *)imagePath;

+(TDCollect *)initWithCollectDic:(NSDictionary *)dic;

(2).m文件

-(TDCollect *)initWithCollectUserId:(NSString *)userId andDiaryId:(NSString *)diaryId andImageId:(NSString *)imageId andDiaryTime:(NSString *)diaryTime andImageAddress:(NSString *)imageAddress andImageDescribe:(NSString *)imageDescribe andNickname:(NSString *)nickname andDiaryTitle:(NSString *)diaryTitle andImagePath:(NSString *)imagePath{

    if (self = [superinit]) {

        self.userId = userId;

        self.diaryId = diaryId;

        self.imageId = imageId;

        

        self.diaryTime = diaryTime;

        self.imageAddress = imageAddress;

        self.imageDescribe = imageDescribe;

        self.nickname = nickname;

        self.diaryTitle = diaryTitle;

        self.imagePath = imagePath;

    }

    return self;

}


+(TDCollect *)initWithCollectDic:(NSDictionary *)dic{

    TDCollect *tdcollect = [[TDCollectalloc]initWithCollectUserId:dic[@"user_id"]andDiaryId:dic[@"diary_id"]andImageId:dic[@"image_id"]andDiaryTime:dic[@"diary_time"]andImageAddress:dic[@"image_address"]andImageDescribe:dic[@"image_describe"]andNickname:dic[@"user_nickname"]andDiaryTitle:dic[@"diary_title"]andImagePath:dic[@"image_path"]];

    return tdcollect;

}

4.还是在tableview的.m文件(自定义一个cell,来显示没一个cell中的数据样式)

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    TDCollectTableViewCell *cell = [tableViewdequeueReusableCellWithIdentifier:@"TDCollectTableViewCell"forIndexPath:indexPath];

    TDCollect *tdcollect =collectArray[indexPath.row];

    [cell setUpWithCollect:tdcollect];

   

    return cell;

}

5.在tableviewcell 的.m文件中

-(void)setUpWithCollect:(TDCollect *)tdcollect{

    self.positionLable.text = tdcollect.imageAddress;

    self.nicknameLabel.text = tdcollect.nickname;

    self.titleLable.text = tdcollect.diaryTitle;

    self.descripeLabel.text = tdcollect.imageDescribe;

    self.diaryTimeLabel.text = tdcollect.diaryTime;

    

    NSString *imagePath = [NSStringstringWithFormat:@"%@%@",kHTTPDiaryImg,tdcollect.imagePath];

    NSURL *URL = [NSURLURLWithString:imagePath];

    NSURLRequest *request = [NSURLRequestrequestWithURL:URL];

    [self.coverImagesetImageWithURLRequest:request placeholderImage:nilsuccess:^(NSURLRequest *request,NSHTTPURLResponse *response, UIImage *image) {

        //显示图片

        self.coverImage.image = image;

        

    } failure:^(NSURLRequest *request,NSHTTPURLResponse *response, NSError *error) {

        

    }];

}




0 0
原创粉丝点击