NSPredicate for inner key in array of dictonary

后端 未结 3 1034
温柔的废话
温柔的废话 2021-01-24 20:35

i have an array of dictionay in the following format

    [
 {
      \"student\": {
        \"id\": \"1\",

        \"studentUserDetail\": {
          \"firstName         


        
相关标签:
3条回答
  • 2021-01-24 21:07
    NSPredicate *filter =  [NSPredicate predicateWithFormat:@"student.studentUserDetail.firstName CONTAINS[cd] %@ ", searchString];
    

    worked perfectly for me

    0 讨论(0)
  • 2021-01-24 21:14
    NSString *name = @"Bonny";
    NSPredicate *pred = [NSPredicate predicateWithFormat:
                        @"student.studentUserDetail.firstName == %@", name];     
    NSArray *arr = [self.anArray filteredArrayUsingPredicate:pred];
    
    NSLog(@"Bonny found at : %@", arr);
    

    Edit:

    If you want to search based on a pattern, then use:

    NSPredicate *pred = [NSPredicate predicateWithFormat:
                        @"student.studentUserDetail.firstName beginswith[cd] %@", name];
    
    0 讨论(0)
  • 2021-01-24 21:16
    NSArray *array = @[
                      @{
                         @"student": @{
                                 @"id": @"1",
                                 @"studentUserDetail": @{
                                         @"firstName": @"Bonny",
                                         @"lastName": @"Roby"
                             }
                         }
                         },
                      @{@"student": @{
                                @"id": @"1",
                                @"studentUserDetail": @{
                                        @"firstName": @"Bonny",
                                        @"lastName": @"Kety"
                                    }
                                }
                      },
                      @{
                         @"student": @{@"id": @"1",
                                       @"studentUserDetail": @{
                                               @"firstName": @"Arther",
                                               @"lastName": @"Fone"
                                               }
                                       }
                      }];
    
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(student.studentUserDetail.firstName) == %@", @"Bonny"];
    NSArray *newArray = [array filteredArrayUsingPredicate:predicate];
    
    0 讨论(0)
提交回复
热议问题