Проблема с получением результатов из сообщения json в objective c с использованием JSON.Фреймворк

#objective-c #json #json-framework

#objective-c #json #json-framework

Вопрос:

Я пытаюсь прочитать сообщение json с использованием json.framework. Сообщение представляет собой вложенный набор сведений о собрании. Я хочу повторить все собрания и создать локальные объекты meeting с подробностями, прочитанными из сообщения. Я вижу, чтобы получить список из 15 встреч, которые указаны в результатах json, но не могу получить отдельные значения из результатов.

Вот мой пример кода. Я использую файл для сообщения json, чтобы мне не приходилось привлекать сервер к этому тестированию. Сообщение json можно загрузить здесь.

 -(void)TestParse:(NSString *)response
{
    NSString *filePath = [[NSBundle mainBundle]pathForResource:@"conference_calls" ofType:@"json"];
    NSString *fileContent =[[NSString alloc]initWithContentsOfFile:filePath];

    parser = [SBJsonParser new];
    NSArray *results = [parser objectWithString:fileContent];

    NSLog(@"Number of itmems in the results: --> %i", [results count]);

    for(NSDictionary *conf in results){

        //Load local objects with the values of the Conf info.

        NSLog(@"This the description %@ ",[c valueForKey:"phone_number"]);

        NSLog(@"Number of Items in Dic: %i",[conf count]);

        NSLog(@"File contents: %@",[conf description]);
    }
  

Ответ №1:

Структура вашего json представляет собой массив словарей. Но каждый словарь имеет только один ключ с именем «conference_call», причем значением для этого ключа является другой словарь со всеми подробностями этого вызова.

Итак, что-то вроде этого должно сработать:

 for (NSDictionary* call in results) {

    // get the actual data for this call
    NSDictionary *callDetails = [call objectForKey:@"conference_call"];

    NSLog (@"Location is %@", [callDetails objectForKey:@"location"]);
}
  

Надеюсь, это поможет.

Комментарии:

1. Я пробовал это и все еще получаю исключение при попытке доступа к ключам.

2. Какой ключ и что является исключением?