目标C - 如何Json解析里面有很多字典的字典?

时间:2017-06-01 17:11:57

标签: objective-c json xcode

这是主词典 - '查询'。

我想访问'结果' - 这是一个具有一些密钥对价值的NSDictionary。

但是,'query'字典的所有元素(即count,results,created,lang,diagnostics)都是在'query'字典的第0个元素内。

enter image description here

这是我为访问“结果”所写的内容。

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页面,但它们都不适合我的需求。问候。

1 个答案:

答案 0 :(得分:2)

据我所知,它应该是这样的:

//results is an NSDictionary
self.results = [[_query valueForKey:@"query"] valueForKey:@"results"];

为了更容易地调试它并更好地理解结构,您还可以将结果字典的访问权限分成多个步骤,例如:

NSDictionary *queryDictionary = [_query valueForKey:@"query"];
self.results = [queryDictionary valueForKey:@"results"];

然后你可以检查第一本词典中的内容,然后是第二本词典中的内容。

希望这有帮助!