Ios 如何在JSON中选择数组

Ios 如何在JSON中选择数组,ios,json,uitableview,nsarray,Ios,Json,Uitableview,Nsarray,我的项目有一些问题。所以我使用JSON获取一些信息。 当我有带文件夹的JSON时(例如:我有带名称Playlist的NSDictionary,在这个播放列表中我有NSString名称和相册),为此,我生成以下代码: NSDictionary *allDataDictionary = [NSJSONSerialization JSONObjectWithData:webdata options:0 error:nil]; NSDictionary *playlist =[allDa

我的项目有一些问题。所以我使用JSON获取一些信息。 当我有带文件夹的JSON时(例如:我有带名称Playlist的NSDictionary,在这个播放列表中我有NSString名称和相册),为此,我生成以下代码:

    NSDictionary *allDataDictionary = [NSJSONSerialization JSONObjectWithData:webdata options:0 error:nil];
    NSDictionary *playlist =[allDataDictionary objectForKey:@"playlist"];

    for (NSDictionary *diction in playlist) {
        NSDictionary *artist = [diction objectForKey:@"artist"];
        NSDictionary *song = [diction objectForKey:@"song"];
        NSString *name = [artist objectForKey:@"name"];
        NSString *namesong = [song objectForKey:@"name"];
        [array addObject:name];
        [array2 addObject:namesong];
    }
    [[self tableTrack]reloadData];
}
这是完美的工作!但是当我没有任何文件夹时,只有,JSON没有NSDictionary只有NSString,如何制作?对不起,我问了个愚蠢的问题,但实际上我试着写:

NSDictionary *allDataDictionary = [NSJSONSerialization JSONObjectWithData:webdata options:0 error:nil];
    NSString *name = [allDataDictionary objectForKey:@"name"];
    NSString *namesong = [allDataDictionary objectForKey:@"name"];
    [array addObject:name];
    [array2 addObject:namesong];
}
[[self tableTrack]reloadData];
}

但我有错误,我的应用程序也崩溃了:

*由于未捕获异常“NSInvalidArgumentException”而终止应用程序,原因:“-[\uu NSCFArray objectForKey:]:无法识别的选择器已发送到实例0x7615c90”


那么,我做错了什么?

错误表明您有一个NSArray,而不是NSDictionary。这对应于一个JSON数组:

[
  { "name" : "fred" },
  { "name" : "jane" }
]
这里有一组字典。您可能需要:

NSArray *people = [NSJSONSerialization JSONObjectWithData:webdata options:0 error:nil];

for (NSDictionary *person in people) {
     NSLog(@"name is %@", person[@"name"];
}

如果您在每种情况下都包含正在解析的JSON示例,那么回答这个问题会更容易。没有NSDictionary和使用NSDictionary进行解析NSDictionary-在JSON.org上播放、播放、研究JSON语法。如果你想一想,一切都在那里。没有字典怎么办?