您的位置:首页 > Web前端 > JavaScript

OC --解析Json串,更改昵称

2015-09-02 17:44 555 查看
一 、了解Json串结构:

在修改昵称的时候需要给后台传一个ID值,还有昵称,但是我的界面上只有昵称,ID值包含在在登录的时候返回给我的Json串里面,下面首先看看返回给我的Json串结构: 在图中可看以很清晰的看出这个Json串分为两层,第一层包含两个元素,int 类型的result, Array 类型的siteUser。




二 、 创建于Json串信息对应的类,第一层的类:



第二层的类:



三 、对应好后获取的时候就能直接获取了,下面该写Json串了:login里面获取,解析JSON串,把解析好的所有内容传给下一个界面 MeViewController
NSString *str = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
        
        NSLog(@"返回数据:%@",str);
            SBJsonParser *json = [[SBJsonParser alloc] init];
            //转换模型
            NSDictionary *dict = [json objectWithString:str];
            //外层模型
            UserInfoModel *userModel = [UserInfoModel objectWithKeyValues:dict];
            //用户详情模型
            NSArray *array = [SiteUser objectArrayWithKeyValuesArray:userModel.SiteUser];
            SiteUser *siteModel = [array firstObject];
            //登录,页面跳转
            MeViewController *MVC = [[MeViewController alloc] init];
            
            MVC.siteModel = siteModel;
            [self.navigationController pushViewController:MVC animated:YES];
            [ShareData sharedShareData].isLogin = YES;
//在MeViewController中获取传过来的信息:

- (void)setUserInfo
{
    [self.userImageView sd_setImageWithURL:[NSURL URLWithString:self.siteModel.headimage]
                          //这儿之所以有这个是因为在同一文件夹下,所以不需要写具体的地址,只需要把名字写出来
                          placeholderImage:[UIImage imageNamed:@"userImage.jpg"]
                                   options:SDWebImageProgressiveDownload
                                 completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
                                     /** 头像下载完成恢复修改按钮操作 */
                                     self.changeUserImageBTN.enabled = YES;
                                     DDLogWarn(@"修改头像按钮可操作");
                                 }];
    self.userNameUL.text = self.siteModel.nickname;
}



三 、把相应的信息传给下一个界面ModifyNameViewController,最后就能看到我们的最后昵称显示在相应的位置了:

//修改昵称模块
    if(indexPath.section == 0 && indexPath.row ==0)
    {
        ModifyNameViewController *MNVC =[ModifyNameViewController new];
        MNVC.oldName = self.userNameUL.text;
        MNVC.Id = self.siteModel.Id;
        [[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];
        [self.navigationController pushViewController:MNVC animated:YES];
    }



四 、总结

这次主要是讲的如何获取Json串,然后进行传值,主要的就是Json串的对应,这个过程整理好了其实很简单,调理也很清楚,就是一个获取Json串,解析Json串,对应起来就可以了。总而言之,只要去做就可以!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: