1

我正在调用一个 API,它以JSON格式返回一些高级数据。然后将其处理为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"]但如何获得“三一二”的值?

我尝试了几件事,但无济于事。

4

3 回答 3

5

使用这样的东西......请在编译器中检查它

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

[results valueForKeyPath:@"three.threeone.threeonetwo.threeonetwoone"];
于 2013-01-10T13:08:12.720 回答
2

随着最近 Objective-C 语法的变化,你可以这样做:

results[@"three"][@"threeone"][@"threeonetwo"][@"threeonetwoone"];
于 2013-01-10T13:11:23.240 回答
1

在你的情况下:

NSString* threeoneone= dict[@"three"][@"threeone"][@"threeonetoone"]; 
于 2013-01-10T13:14:30.387 回答