NSURL *jsonURL = [NSURL URLWithString:stringURL];
NSData *jsonData = [NSData dataWithContentsOfURL:jsonURL];
NSDictionary *jsonArray = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:nil];
NSString *stringImageURL = [jsonArray valueForKey:@"artworkUrl100"];
最后一行是问题。我可以完美地获得数组,但stringImageURL
的值为零。如何正确检索下面突出显示的键?
答案 0 :(得分:4)
NSString *stringImageURL = [jsonArray valueForKey:@"artworkUrl100"];
应该是
NSString *stringImageURL = [[[jsonArray valueForKey:@"result"]
objectAtIndex:0]
valueForKey:@"artworkUrl100"];
或者,更简洁
NSString *stringImageURL = jsonArray[@"result"][0][@"artworkUrl100"];
数据嵌套比你想象的深2级,你所追求的字典值包含在一个数组中,在另一个字典中,在result
键下。
答案 1 :(得分:2)
首先,您的jsonArray不是数组,而是字典。
其次,看起来你有一个包含字典数组的字典,所以它会是:
NSArray *resultsArray = [jsonArray valueForKey:@"results"];
NSDictionary *resultDict = [resultsArray objectAtIndex:0];
NSString *stringImageURL = [resultDict valueForKey:@"artworkUrl100"];