Iphone IOS JSON从一个";JSON Dict";

Iphone IOS JSON从一个";JSON Dict";,iphone,objective-c,ios,json,Iphone,Objective C,Ios,Json,我有这样的数据结构: { "artistlist " : [ { "performer" : "Gate Zero" }, { "performer" : "nightech" }, {

我有这样的数据结构:

{ 
  "artistlist " : [ 
                    {
                      "performer" : "Gate Zero"
                    },
                    {
                      "performer" : "nightech"
                    },
                    {
                      "performer" : "Marko Fuerstenberg"
                    },

                  ] 
   }
我使用以下代码行将此结构从NSString读入NSDictionary:

   JSON = [NSJSONSerialization JSONObjectWithData:
   [[chunks objectAtIndex:1]        
   dataUsingEncoding:NSUTF8StringEncoding] options:              
   NSJSONReadingMutableContainers error: &e];
使用:
[JSON objectForKey:@“artistlist”]
我得到了以下结构:

(
    {
    performer = "Gate Zero";
},
    {
    performer = nightech;
},
    {
    performer = "Marko Fuerstenberg";
}
)
有什么办法可以“更深入”吗

如何解析结果结构

我想获得一个值列表或直接访问执行者名称。如果一个元组中有几个值,例如表演者姓名、唱片集、年份,该怎么办。我如何访问这些值


谢谢。

是的,在您拥有
[JSON objectForKey:@“artistlist”]
之后,您会得到一个
NSArray
NSDictionary
(有点混乱!)


这将产生每个执行者的名字。或者,您可以对(NSU整数i=0;i<[performersArray计数];i++)执行
,并访问
NSDictionary*performersDic=[performersArray对象索引:i]
。从那里,您可以类似地使用
[performdic objectForKey:@“performer”]

您必须使用递归。例如,假设您只有嵌套的NSDictionary(易于修改以使用NSArray):

像这样:

[[[JSON objectForKey:@"artistlist "] objectAtIndex: 1] objectForKey:@"performer"]
它将为您提供
“nightech”

{}
对应于
NSDictionary
[]
对应于
NSArray

- (void) getArtistFromJsonObject:(NSDictionary *)obj {
    for (NSString *key in [obj allKeys]) {
        id child = [obj objectForKey:key];
        if ([child isKindOfClass:[NSString class]]) {
            // that's the actual string
            // NSLog(@"Found artist: %@", child); // or do whatever needed

        } else if ([child isKindOfClass:[NSDictionary class]]) {
            [self getArtistFromJsonObject:child];
        }
    }
}
[[[JSON objectForKey:@"artistlist "] objectAtIndex: 1] objectForKey:@"performer"]