Ios 从字典数组中获取字典值的范围
在我的JSON响应中,我需要解析字典数组中的一系列值。 这是我的回答Ios 从字典数组中获取字典值的范围,ios,objective-c,nsmutablearray,nsmutabledictionary,Ios,Objective C,Nsmutablearray,Nsmutabledictionary,在我的JSON响应中,我需要解析字典数组中的一系列值。 这是我的回答 “List”: [ { "event_desc": "On" }, { "event_desc": “Go” }, { "event_desc": “Start” }, { "event_desc": "Off” }, { "eve
“List”: [
{
"event_desc": "On"
},
{
"event_desc": “Go”
},
{
"event_desc": “Start”
},
{
"event_desc": "Off”
},
{
"event_desc": “Rework”
},
{
"event_desc": "On"
},
{
"event_desc": “Start”
},
{
"event_desc": "Off”
},
{
"event_desc": “Swipe”
},
{
"event_desc": "On"
},
{
"event_desc": “Work”
},
{
"event_desc": “Repair”
},
{
"event_desc": “Off”
},
{
"event_desc": "On"
}
]
这里我想按“开”和“关”的范围来分隔这些值
就是
帮帮我,提前谢谢你可以这样做
NSArray *yourArr; // posted in question
NSMutableArray *resultArr = [[NSMutableArray alloc]init];
NSMutableArray *tempArr = [[NSMutableArray alloc]init];
BOOL flag = NO;
for (int i = 0; i < yourArr.count; i++) {
NSDictionary *dic = [yourArr objectAtIndex:i];
if ([[dic objectForKey:@"event_desc"] isEqualToString:@"On"]) {
flag = YES;
}
if (flag) {
[tempArr addObject:dic];
}
if ([[dic objectForKey:@"event_desc"] isEqualToString:@"Off"]) {
flag = NO;
[resultArr addObject:[tempArr mutableCopy]];
[tempArr removeAllObjects];
}
}
NSLog(@"your result array : %@",resultArr);
NSArray*yourrar;//有问题的帖子
NSMutableArray*resultArr=[[NSMutableArray alloc]init];
NSMutableArray*tempArr=[[NSMutableArray alloc]init];
布尔标志=否;
for(int i=0;i
这是一种非常笨拙的数据表示方式。最好将JSON重新构造为更好地表示信息含义的内容。这是一个笨拙的数据结构,但它是有序的。是的,我意识到了。首先获取数组中的所有值。然后对于(NSString*string in arr){如果([string isEqualToString:@“On”]){//添加到数组而([string isEqualToString:@“Off”]){//添加到数组}//创建新数组并重复}检查我的答案,它将在一个数组中返回您想要的数组!!是的,正如@duncac所说,这是一个笨拙的结构!如果可能的话,你应该改变它!如果你必须保持现状,那么你可以像我在回答中提到的那样管理它!eventList只给出空的应该有一些小错误,但是逻辑应该可以工作。你能把你试过的代码和JSON一起粘贴吗。我很快就能让它工作。
NSArray *yourArr; // posted in question
NSMutableArray *resultArr = [[NSMutableArray alloc]init];
NSMutableArray *tempArr = [[NSMutableArray alloc]init];
BOOL flag = NO;
for (int i = 0; i < yourArr.count; i++) {
NSDictionary *dic = [yourArr objectAtIndex:i];
if ([[dic objectForKey:@"event_desc"] isEqualToString:@"On"]) {
flag = YES;
}
if (flag) {
[tempArr addObject:dic];
}
if ([[dic objectForKey:@"event_desc"] isEqualToString:@"Off"]) {
flag = NO;
[resultArr addObject:[tempArr mutableCopy]];
[tempArr removeAllObjects];
}
}
NSLog(@"your result array : %@",resultArr);
NSArray *parsedJson = nil; //Should have your parsed json list array here
NSMutableArray *eventList = [@[] mutableCopy]; // This will be your final array of list events
NSMutableArray *eventEntry = [@[] mutableCopy]; // Will contain each list event from event_desc On to event_desc Off
for (NSDictionary *event in parsedJson) {
if ([event[@"event_desc"] isEqualToString:@"On"]) {
[eventEntry removeAllObjects];
[eventList addObject:eventEntry];
}else if(([event[@"event_desc"] isEqualToString:@"Off"]) ){
[eventEntry addObject:event];
[eventList addObject:eventEntry]; // Add each eventEntry to main array as its complete.
}else{
[eventEntry addObject:event];
}
}
NSLog(@"Result eventList array : %@",eventList);