这是主词典 - '查询'。
我想访问'结果' - 这是一个具有一些密钥对价值的NSDictionary。
但是,'query'字典的所有元素(即count,results,created,lang,diagnostics)都是在'query'字典的第0个元素内。
这是我为访问“结果”所写的内容。
NSData *data = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"restuarant" ofType:@"json"]];
//query is main NSDictionary
self.query = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
//results is an NSDictionary
self.results = [_query valueForKey:@"results"][0];
但是,当我调试它时,所有内容都会保存在“查询”变量中,但没有任何内容存储在“结果”变量中。
我也尝试了以下代码,但这也没有用 -
self.results = [_query valueForKey:@"results"];
我已经查看了许多其他stackoverflow页面,但它们都不适合我的需求。问候。
答案 0 :(得分:2)
据我所知,它应该是这样的:
//results is an NSDictionary
self.results = [[_query valueForKey:@"query"] valueForKey:@"results"];
为了更容易地调试它并更好地理解结构,您还可以将结果字典的访问权限分成多个步骤,例如:
NSDictionary *queryDictionary = [_query valueForKey:@"query"];
self.results = [queryDictionary valueForKey:@"results"];
然后你可以检查第一本词典中的内容,然后是第二本词典中的内容。
希望这有帮助!