如何在NSDictionary中获取NSDictionary中的所有值



我正在使用flickr,在样本取回中我得到这个:

{
    "api_key" =     {
        "_content" = 3c6eeeae4711a5f478d3da796750e06b;
    };
    format =     {
        "_content" = json;
    };
    method =     {
        "_content" = "flickr.test.echo";
    };
    nojsoncallback =     {
        "_content" = 1;
    };
    stat = ok;
}

这是一个包含5个条目的字典(api_key, format, method, nojsoncallback &统计)。前4个部分本身就是字典。

首先,在我的原始字典中有第5个元素,它不是字典,它只是原始字典中的最后一个条目(stat=ok)。此外,我希望每个子条目中的_content键出现在我的单个单元格中,但我不想硬编码任何值。我是否设置数组?

NSDictionary有一个漂亮的小方法叫做valueForKeyPath。他是你的救世主。

[dict valueForKeyPath:@"api_key._content"]
[dict valueForKeyPath:@"format._content"]
[dict valueForKeyPath:@"method._content"]
[dict valueForKeyPath:@"nojsoncallback._content"]

它所做的是遍历键路径并获取每个JSON子结构中content的值。否则,您将不得不编写一个for-loop并遍历它。整洁的啊?

试试这个

for (NSString *key in dictionary){
    id object = dictionary[key];
    if ([object isKindOfClass:[NSDictionary class]]) {
    //Now you can work on the dictionary object
    }
}

最新更新