Как получить значение ключа из NSdictonary - iphone SDK - PullRequest
1 голос
/ 15 февраля 2010

Я использую API, который предоставляет мне данные из Интернета. Данные представлены в формате Json и хранятся в формате NSDictionary. Как это:

SBJSON *parser = [[SBJSON alloc] init];
dict = [[NSDictionary alloc]init];
dict = [parser objectWithString:jsonArray error:nil];

Ggb консольный результат для: po dict

        1262 =             {
            "feed_name" = name1;
            "new_results" = 6;
            "next_update" = "2010-02-16T15:22:11+01:00";
        };
        1993 =             {
            "feed_name" = name2;
            "new_results" = 0;
            "next_update" = "2010-02-16T09:09:00+01:00";
        };

Как получить доступ к значениям "1262" и "1993" и поместить их в NSArray, для использования в UITableView

Большое спасибо, С Уважением, Барт

Ответы [ 2 ]

5 голосов
/ 15 февраля 2010

Прежде всего, метод SBJSON objectWithString:error: вернет одно из следующих значений в зависимости от того, какой корневой объект находится в сообщении JSON:

  • NSArray
  • NSDictionary

Итак, вы не всегда должны предполагать, что он вернет вам словарь, если вы точно не знаете, что будет возвращено в JSON.

Во-вторых, вы выделяете новый объект NSDictionary, но затем присваиваете результат синтаксического анализа вашей переменной dict, вытекая ранее выделенный словарь. Вам не нужна эта строка: dict = [[NSDictionary alloc]init];.

Наконец, поскольку возвращаемый объект является словарем, вы можете получить все объекты из словаря следующим образом:

for (NSString *key in [dict allKeys])
{
    NSDictionary *feed = [dict objectForKey:key];

    //do stuff with feed.
}
4 голосов
/ 15 февраля 2010
return [dict allKeys];
...