从 json ios 检索数据

Retrieve a data from json ios

这是字典*data的内容

 Data =     {
        Specialities =         (
                        {
                ApprovalStatus = Unapproved;
                CurrencyCode = "<null>";
                Packages = "<null>";
                Photos = "<null>";
                ServiceDescription = 356563;
                Speciality = 22;
                SpecialityName = "Wedding Photographer";
                UserFRPs = "<null>";
                Videos =                 (
                                        {
                        VideoId = TWhSjpsGvPQ;
                        VideoLink = "http://www.youtube.com/watch?v=TWhSjpsGvPQ";
                        VideoType = YouTube;
                    },
                                        {
                        VideoId = N2CJrhHEydA;
                        VideoLink = "http://www.youtube.com/watch?v=N2CJrhHEydA";
                        VideoType = YouTube;
                    },
                                        {
                        VideoId = Lq6faQVYcwY;
                        VideoLink = "http://www.youtube.com/watch?v=Lq6faQVYcwY";
                        VideoType = YouTube;
                    },
                                        {
                        VideoId = v8WjMiodcKo;
                        VideoLink = "http://www.youtube.com/watch?v=v8WjMiodcKo";
                        VideoType = YouTube;
                    }
                );
            },
                        {
                ApprovalStatus = Unapproved;
                CurrencyCode = "<null>";
                Packages = "<null>";
                Photos = "<null>";
                ServiceDescription = 52454353;
                Speciality = 37;
                SpecialityName = "Hair and Makeup Stylist";
                UserFRPs = "<null>";
                Videos = "<null>";
            },
                        {
                ApprovalStatus = Unapproved;
                CurrencyCode = "<null>";
                Packages = "<null>";
                Photos = "<null>";
                ServiceDescription = 21212;
                Speciality = 55;
                SpecialityName = Transport;
                UserFRPs = "<null>";
                Videos = "<null>";
            }
        );
    };
}

这是我从 json 得到的响应,我应该写什么逻辑来检索链接到特定 "Speciality" 的 "VideoId"(对于前 Specialty = 22)

如果我写下面的代码,我得到所有@"VideoId"

[[[[responseDictionary valueForKey:@"Data"]valueForKey:@"Specialities"]valueForKey:@"Videos"]valueForKey:@"VideoId"]

解析方式类似于:

        NSDictionary *dataDict = [responseDictionary valueForKey:@"Data"];
        NSMutableArray *specialityArray = [dataDict valueForKey:@"Specialities"];
        NSDictionary *objectDict = [specialityArray objectAtIndex:your index (0/1/2)];
        int *speciality = [[objectDict ValueForKey:@"Speciality"] intValue];
    if(speciality = 22)
    {
        NSMutableArray *videoArray = [objectDict valueForKey:@"Videos"];
        NSDictionary *videoObject = [videoArray objectAtIndex:your index (0/1/2)];
        NSString     *videoID     = [videoObject valueForKey:@"VideoId"];
    }

其余的根据您的需要相应地解析。

使用此代码,

    NSArray *wholeArray = [[responseDictionary objectForKey:@"Data"] valueForKey:@"Specialities"];
    NSArray *subArray = [[wholeArray objectAtIndex:0] valueForKey:@"Videos"];

subArray 是获取所有视频值,然后使用此代码获取单个值,

NSString  *videoID = [[subArray objectAtIndex:i] valueForKey:@"VideoId"];

或者您将使用下面的代码在单个变量中获取所有视频 ID,

NSMutableArray *tempArray = [[NSMutableArray alloc] init];
    for (int i = 0; i < subArray.count; i++) {
        [tempArray addObject:[[subArray objectAtIndex:i] valueForKey:@"VideoId"]];
    }

最终 tempArray 获取所有 VideoID 值,无论您在何处使用,

NSString  *videoID = [tempArray objectAtIndex:0/1/2];

希望对您有所帮助