到目前为止,利用AFNetworking 2.5填充一个阵列,其中填充了与top.fm API相关的顶级曲目的艺术家。这是我目前的代码。
NSURL *url = [NSURL URLWithString:URLstring];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc]initWithRequest:request];
operation.responseSerializer = [AFJSONResponseSerializer serializer];
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
NSDictionary *dict = (NSDictionary *)responseObject;
NSArray *allValues = [dict allValues];
NSLog(@"all values contained in array: %@", allValues);
NSLog(@"all values count: %lu", allValues.count);
计数返回1.我希望有一个填充了轨道的数组,每个索引值对应一个轨道。目前,只有第一个索引值在数组中填充。我还注意到正在打印的JSON数据是JSON,并且在打印时看起来不像NSArray中的对象。
编辑:这是input
答案 0 :(得分:2)
使用KVC获取曲目数组:
NSArray* tracks = [dict valueForKeyPath:@"toptracks.track"]
或类似的东西
答案 1 :(得分:1)
从您发布的输入JSON判断出实现目标的最佳方法是修改以下内容。
将NSArray *allValues = [dict allValues];
更改为
NSDictionary *dict = (NSDictionary *)responseObject;
NSArray *allValues = dict[@"toptracks"][@"track"];