ios的对象数组生成jsonarray-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

ios的对象数组生成jsonarray

杨冬芳 2016-06-29 17:51:20 1515

小弟菜鸟一个,需要将一个对象数组生成一个jsonarray,奈何实在不大懂ios,搞了大半天还是不行。请问下 大神怎么处理的?如下,我想将actorhalls这个对象数组转换为一个json的字符串。谢谢大家了

NSMutableArray *actorhalls=[[NSMutableArray alloc]init];

for (int i=0; i<[self.channels count]; i++) { 

    ExecplanActosHall *actorhall=[[ExecplanActosHall alloc]init]; 

    actorhall.ownerName=channel.channelName; 

    actorhall.ownerId=channel.channelId; 

    actorhall.channelId=[MXUser currentUser].channelId; 

    actorhall.ownerType=17; 

   [actorhalls addObject:actorhall]; 

} 
JSON iOS开发 数据格式
分享到
取消 提交回答
全部回答(1)
  • 杨冬芳
    2019-07-17 19:49:17

    遍历数组中的值,并按json格式去 格式化每一组数组,拼接起来即可

    以下是用例,我测试了下,是可以的,不知道有没有更加高效的办法

    //1. 初始化可变字符串,存放最终生成json字串

        NSMutableString *jsonString = [[NSMutableString alloc] initWithString:@"{\"actorhalls\":["];
         
        for(ExecplanActosHall *hall in actorhalls){
             
            //2. 遍历数组,取出键值对并按json格式存放
            NSString *string;
             
            string  = [NSString stringWithFormat:
                      @"{\"ownerName\":\"%@\",\"ownerId\":\"%@\",\"channelId\":\"%@\",\"ownerType\":\"%ld\"},",hall.ownerName,hall.ownerId,hall.channelId,(long)hall.ownerType];
             
            [jsonString appendString:string];
             
        }
        // 3. 获取末尾逗号所在位置
        NSUInteger location = [jsonString length]-1;
      
        NSRange range       = NSMakeRange(location, 1);
         
        // 4. 将末尾逗号换成结束的]}
        [jsonString replaceCharactersInRange:range withString:@"]}"];
    
        NSLog(@"jsonString = %@",jsonString);
    
    0 0
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题
推荐课程