如何访问NSMutableArray中的JSON数据?

我试图访问我从一个网站采取的JSON数据,并存储在一个数组中。 但是,首先,我想过滤掉除了“标题”信息之外的所有信息,我使用的是valueForKey:方法。 为了testing这个,我使用NSLog方法将它们写入日志,但是当我运行这个时,我得到“null”。

任何人都可以告诉我,至于为什么我得到我所得到的?

感谢您的帮助,非常感谢。

 { NSURL *redditURL = [NSURL URLWithString:@"http://pastebin.com/raw.php?i=FHJVZ4b7"]; NSError *error = nil; NSString *jsonString = [NSString stringWithContentsOfURL:redditURL encoding:NSASCIIStringEncoding error:&error]; NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding]; NSMutableArray *json = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&error]; NSMutableArray *titles = [json valueForKey:@"title"]; NSLog(@"%@", json); } 

看看在这个pastebin中返回的JSON对象,你会得到以下结果:

  { "kind":"Listing", "data":{ "modhash":"", "children":[ ... ], "after":"t3_1qwcm7", "before":null } } 

这不是一个数组,它是一个JSON对象。要获得孩子的标题,您将需要执行以下操作:

  NSMutableDictionary *json = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&error]; NSMutableArray *children = [[json objectForKey:@"data"] objectForKey:@"children"]; NSMutableArray *titles = [children valueForKeyPath:@"data.title"]; 

这是因为子数组嵌套在"data"对象中,每个子对象都嵌套在另一个"data"对象中。

您还需要调用valueForKeyPath:而不是valueForKey:因为数据嵌套在另一个对象中