我是iOS开发中的新手。我想将我的JSON解析数据字典数组键值添加到另一个数组但是它只将我的上一个数组索引添加到新数组中。
我的代码就像
一样-(void)fetchedData:(NSData *)responsedata
{
if (responsedata.length > 0)
{
NSError* error;
self.json = [NSJSONSerialization JSONObjectWithData:responsedata options:kNilOptions error:&error];
if ([[_json objectForKey:@"data"] isKindOfClass:[NSArray class]])
{
NSArray *arr = (NSArray *)[_json objectForKey:@"data"];
[self.imageArray addObjectsFromArray:arr];
[self.storeViewTable reloadData];
}
self.storeViewTable.hidden=FALSE;
}
NSMutableArray *imagearray=[[NSMutableArray alloc]init];
for (index=0; index <[self.imageArray count]; index ++)
{
for(NSDictionary *dict in self.imageArray )
{
imagearray = [dict valueForKey:@"demopage"];
self.imagesa = imagearray;
}
}
NSLog(@"Array Count %d",[self.imagesa count]);
NSLog(@"Another array Count %d",[self.imageArray count]);
}
这里self.imagearray是我的主要数组,包含我的所有JSON数据但我想从旧数据中解析一个新数据并将其添加到self.imagesa数组这里对于自我图像值的关键是演示页面和自我.imagearray计数是三(3)所以我希望我的所有三个索引值都在self.imagesa但它只包含最后一个索引值请给我解决方案为此。我的Webservices链接在这里。 link
答案 0 :(得分:1)
您的代码应如下所示。
id json = [NSJSONSerialization JSONObjectWithData:responsedata options:kNilOptions error:&error];
if ([[json objectForKey:@"data"] isKindOfClass:[NSArray class]])
{
NSArray *arr = (NSArray *)[json objectForKey:@"data"];
[imageArray addObjectsFromArray:arr];
}
//do not alloc init if you have already alloc init array.
NSMutableArray *imagesa=[[NSMutableArray alloc]init];
for(NSDictionary *dict in imageArray )
{
[imagesa addObject:@{@"demopage":[dict valueForKey:@"demopage"]}];
}
NSLog(@"Array Count %lu",(unsigned long)[imagesa count]);
NSLog(@"Another array Count %lu",(unsigned long)[imageArray count]);
我得到了输出
数组计数3
另一个数组Count 3
注意强>
如果你想将所有demopage
字典添加到imagesa
数组,那么替换你的for循环
for(NSDictionary *dict in imageArray )
{
NSArray *arr = (NSArray *)[dict valueForKey:@"demopage"];
[imagesa addObjectsFromArray:arr];
}
,输出
数组计数69
另一个数组Count 3