简体   繁体   English

从字典数组中获取字典值的范围

[英]get the range of dictionary values from Array of dictionary

In my response JSON i need to parse a range of values from a array of dictionary. 在我的响应JSON中,我需要从字典数组中解析一系列值。 Here is my response, 这是我的回应,

“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"
      }
]

here i want to separate the values by range of "On" & "Off" that is 在这里,我想按“开”和“关”的范围来分隔值,即

list1=[ {event_desc:On},{event_desc:Go},{event_desc:Start},{event_desc:Off}]
list2=[{event_desc:On},{event_desc:Start},{event_desc:Off}]
list3= [{event_desc:On},{event_desc:Work},{event_desc:Repair},{event_desc:Off}]

Help me, Thanks in advance 帮帮我,谢谢

You can do something like, 你可以做类似的事情,

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);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM