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

本文介绍在iOS应用中如何处理JSON数据,特别是从登录返回的JSON串中提取ID,结合用户输入的昵称,进行昵称修改的操作。通过创建与JSON结构匹配的类,解析数据,并将信息传递到后续界面完成显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 一 、了解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串,对应起来就可以了。总而言之,只要去做就可以!


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值