如何从字典中检索数组,然后检索该数组中的字典?

时间:2012-02-23 09:26:32

标签: iphone ios xml xcode nsdictionary

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

我正在关注此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";
        };
    }
)

2 个答案:

答案 0 :(得分: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
}

是一本字典。

答案 1 :(得分: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);

    }

}

如果这不是您想要做的,请编辑您的问题,以便我能够纠正我的回复。

希望有所帮助!