开发者社区> 问答> 正文

ios的对象数组生成jsonarray

小弟菜鸟一个,需要将一个对象数组生成一个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]; 

} 

展开
收起
杨冬芳 2016-06-29 17:51:20 2398 0
1 条回答
写回答
取消 提交回答
  • IT从业

    遍历数组中的值,并按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);
    
    2019-07-17 19:49:17
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
手淘iOS性能优化探索 立即下载
From Java/Android to Swift iOS 立即下载
深入剖析iOS性能优化 立即下载