Доступ к вложенным массивам и словарям, сгенерированным JSON-фреймворком iPhone - PullRequest
1 голос
/ 12 января 2010

Я использую Google API для возврата некоторого JSON, который я преобразовал в их типы Objective C с помощью JSON-framework (Стиг B - Google Code).

Теперь у меня есть такие структуры:

responseData
    results
        [0]
            title = "Stack Overflow"
    cursor

Как я могу получить доступ к вложенному массиву results, чтобы получить значение title (словарь, который я предполагаю)?

Я пробовал это, но безуспешно:

    for (NSString *key in [jsonObjects objectForKey:@"responseData"]) {
        NSLog(@"%@",key);
        for (NSString *element in [key valueForKey:@"results"]) {
            NSLog(@"%@",element);   
        }
    }

Внешний цикл выведет имена массивов results и cursor, так что это работает, но для внутреннего цикла я получаю ошибку not key value coding compliant.

Спасибо

1 Ответ

1 голос
/ 12 января 2010

Вы можете использовать NSLog([jsonObjects description]) для просмотра содержимого и структуры вашего словаря.
Для просмотра массива «результатов» и его содержимого вы можете использовать следующий (или похожий) код:

NSDictionary* responseDict = [jsonObjects objectForKey:@"responseData"]; // Get your dictionary
NSArray* resultsArray = [responseDict objectForKey:@"results"]; 
for (NSDictionary* internalDict in resultsArray)
    for (NSString *key in [internalDict allKeys])
       NSLog([NSString stringWithFormat:@"%@ - %@", key, [internalDict objectForKey:key];
...