从json ios检索数据

从json ios检索数据,ios,objective-c,json,nsdictionary,Ios,Objective C,Json,Nsdictionary,这是dictionary*数据的内容 Data = { Specialities = ( { ApprovalStatus = Unapproved; CurrencyCode = "<null>"; Packages = "<null>"; Photos

这是dictionary*数据的内容

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

解析方式类似于:

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

根据需要相应地解析其余部分。

解析方式如下:

        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"];
子数组是获取所有视频值,然后使用此代码获取单个值

NSString  *videoID = [[subArray objectAtIndex:i] valueForKey:@"VideoId"];
或者您将在单个变量中获得所有videoID,使用下面的代码

NSMutableArray *tempArray = [[NSMutableArray alloc] init];
    for (int i = 0; i < subArray.count; i++) {
        [tempArray addObject:[[subArray objectAtIndex:i] valueForKey:@"VideoId"]];
    }
希望对您有所帮助

使用此代码

    NSArray *wholeArray = [[responseDictionary objectForKey:@"Data"] valueForKey:@"Specialities"];
    NSArray *subArray = [[wholeArray objectAtIndex:0] valueForKey:@"Videos"];
子数组是获取所有视频值,然后使用此代码获取单个值

NSString  *videoID = [[subArray objectAtIndex:i] valueForKey:@"VideoId"];
或者您将在单个变量中获得所有videoID,使用下面的代码

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

希望它有用的

特性是数组,每个索引都包含一个字典。你可以对数组使用ObjectAtIndex。特性是数组,每个索引都包含一个字典。你可以对数组使用ObjectAtIndex。感谢Saad的帮助,你的代码解决了我的问题,但唯一的问题是我无法硬编码索引。NSDictionary*objectDict=[specialityArray对象索引:您的索引(0/1/2)];你真的喜欢硬编码吗?如果我们完全确定某个值及其出现,我们通常会硬编码。这也是一种不好的做法。我不想硬编码bcoz speciality id可能会更改,因此如何获取特定speciality的索引,以便您可以重复使用您的专业:
for(NSDictionary*objectDict in specialityArray){int*speciality=[[objectDict ValueForKey:@“speciality”]intValue];等等。}
感谢您的帮助Saad,您的代码解决了我的问题,但唯一的问题是我无法硬编码索引。NSDictionary*objectDict=[specialityArray对象索引:您的索引(0/1/2)];你真的喜欢硬编码吗?如果我们完全确定某个值及其出现,我们通常会硬编码。这也是一种不好的做法。我不想硬编码bcoz speciality id可能会更改,因此如何获取特定speciality的索引,以便您可以重复使用您的专业:
for(NSDictionary*objectDict in specialityArray){int*speciality=[[objectDict ValueForKey:@“speciality”]intValue];等等。}
谢谢Iyyappan的帮助,但我无法对索引进行编码感谢Iyyappan的帮助,但我无法对索引进行编码