如何检索部分JSON文件?

时间:2015-06-27 17:08:44

标签: ios objective-c

可以使用 ng-change="update(variation,$index);" $scope.update = function (variation, index) { if (!angular.isUndefined(variation.VariationName)) { if (variation.VariationName.length > 0) { $scope.addVariation(variation.VariationTypeId); } else { $scope.productEditorModel.ColorVariations.splice(index, 1); $scope.removeVariation(index, variation.VariationTypeId); } } else { $scope.removeVariation(index, variation.VariationTypeId); } } Objective-C 中检索JSON的某些部分而不是全部部分。就像我想在性别等于男性

时检索这些数据
IF

任何想法都会受到赞赏。

2 个答案:

答案 0 :(得分:2)

使用for in循环

for (NSDictionary *dict in JSONArray) {
        if ([dict[@"gender"] isEqualToString:@"Male"]) {
            NSLog(@"Gender Data: Name = %@ Age = %@", dict[@"name"], dict[@"age"]);
        }
    }

答案 1 :(得分:1)

使用NSPredicate的替代解决方案

  NSString *jsonString = @"[{\"name\":\"A\",\"gender\":\"Male\",\"age\":20},{\"name\":\"B\",\"gender\":\"Female\",\"age\":12},{\"name\":\"C\",\"gender\":\"Male\",\"age\":20}]";

  NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
  NSArray *jsonArray = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error: nil];
  NSArray *maleRecords = [jsonArray filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"gender == 'Male'"]];
  NSLog(@"%@", maleRecords);