2012-02-23 73 views
0

我想知道如何从字典中检索数组,然后从数组对象中检索字典。如何从字典中检索数组,然后检索该数组中的字典?

我正在追踪这个http://ios.biomsoft.com/2011/09/11/simple-xml-to-nsdictionary-converter/

itemDict 
(
     { 
     postID =   { 
      text = 26; 
     }; 
     score =   { 
      text = 20; 
     }; 
     title =   { 
      text = "http://www.google.com quiz"; 
     }; 
     url =   { 
      text = "http://www.google.com"; 
     }; 
    }, 
     { 
     postID =   { 
      text = 27; 
     }; 
     score =   { 
      text = 10; 
     }; 
     title =   { 
      text = "http://www.google.com"; 
     }; 
     url =   { 
      text = "http://www.google.com"; 
     }; 
    }, 
     { 
     postID =   { 
      text = 3; 
     }; 
     score =   { 
      text = 41; 
     }; 
     title =   { 
      text = "http://www.google.com"; 
     }; 
     url =   { 
      text = "http://www.google.com"; 
     }; 
    }, 
     { 
     postID =   { 
      text = 35; 
     }; 
     score =   { 
      text = 10; 
     }; 
     title =   { 
      text = "Sample Video"; 
     }; 
     url =   { 
      text = "http://www.google.com"; 
     }; 
    }, 
     { 
     postID =   { 
      text = 43; 
     }; 
     score =   { 
      text = 30; 
     }; 
     title =   { 
      text = "sample"; 
     }; 
     url =   { 
      text = "http://www.google.com"; 
     }; 
    } 
) 

回答

1

好吧,你想要做的是以下几点。

从我可以从发布的链接中搜集的内容,您可以获得顶级NSDictionary,然后在其中包含XML。 NSDictionary内部会有一个对象,从你的例子来看,它可能是itemDict,但在我看来,它更像是一个NSArray。

从这里,我会将NSArray存储在另一个里面。

该数组内的每个对象都是与其匹配的键和对象的NSDictionary。显然我在谈论这一点。

{ 
    postID =   { 
     text = 26; 
    }; 
    score =   { 
     text = 20; 
    }; 
    title =   { 
     text = "http://www.google.com quiz"; 
    }; 
    url =   { 
     text = "http://www.google.com"; 
    }; 
}, 

也许像下面的东西可以让你深入下潜。

NSArray *itemArray = [xmlDictionary objectForKey:@"itemDict"]; 

for (NSDictionary *dict in itemArray) { 

    NSLog(@"Dictionary: %@", dict); 

} 

该代码应该显示NSArray内的每个NSDictionary的输出。从这里,它是一个简单的情况下做任何你想要的NSDictionary。

编辑

刚把再看看我想我会在添加这一点。 看来每个NSDictionary我们会与上面的代码,然后有一个关键的另一个对象,该对象存储在另一个字典内。如果你问我这个XML,真的很奇怪...

但是,解决方法可能如下。

NSArray *itemArray = [xmlDictionary objectForKey:@"itemDict"]; 

for (NSDictionary *dict in itemArray) { 

    NSLog(@"Dictionary: %@", dict); 

    for (NSDictionary *dictObject in [dict allKeys]) { 

     NSLog(@"Dictionary Object: %@", dictObject); 

    } 

} 

如果这不是你想要做的,请编辑你的问题,这样我可以纠正我的反应。

希望有帮助!

1

让我们假设你分析它,并有这样的事情:

(
//object 0 
    { 
    postID= 26; 
    score = 20; 
    title = www.google.com 
    url = www.google.com 
    }, 
//object 1 
    { 
    postID= 27; 
    score = 10; 
    title = www.google.com 
    url = www.google.com 
    }... 
    ) 

这是你的阵列。

的objectAtIndex:0在此示例中是:

{ 
postID= 26; 
score = 20; 
title = www.google.com 
url = www.google.com 
} 

是一个字典。