小弟菜鸟一个,需要将一个对象数组生成一个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格式去 格式化每一组数组,拼接起来即可
以下是用例,我测试了下,是可以的,不知道有没有更加高效的办法
//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);
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。