获取复杂NSDictionary的内容

时间:2013-01-10 13:03:15

标签: ios objective-c nsdictionary

我正在调用一个以JSON格式返回一些高级数据的API。然后将其处理为NSDictionary,如此;

NSDictionary *results = [NSJSONSerialization JSONObjectWithData:JSONData options:kNilOptions error:&error];

当我记录这个时,我可以得到一个非常复杂的结果:

{
 one = {
         oneone = 12345;
         onetwo = "Hello";
         onethree = "How Are You";
       };
 two = 42;
 three = {
           threeone = {
                        threeoneone = "Name";
                        threeonetwo = {
                                          threeonetwoone = "100";
                                          threeonetwotwo = "26";
                                       };
etc etc etc

现在我通过调用[results objectForKey:@"three"]获取'three'的内容但是如何获得'threeonetwoone'的值?

我尝试了一些但无济于事。

3 个答案:

答案 0 :(得分:5)

使用类似的东西......请在编译器中查看

由于我不确定,你是否提到了正确的词典,所有的键都应该是正确的。

[results valueForKeyPath:@"three.threeone.threeonetwo.threeonetwoone"];

答案 1 :(得分:2)

随着Objective-C语法的最新更改,您可以这样做:

results[@"three"][@"threeone"][@"threeonetwo"][@"threeonetwoone"];

答案 2 :(得分:1)

在你的情况下:

NSString* threeoneone= dict[@"three"][@"threeone"][@"threeonetoone"];