Проблемы с получением результатов из сообщения json в цели c с использованием JSON.Framework - PullRequest
0 голосов
/ 22 мая 2011

Я пытаюсь прочитать сообщение json с помощью json.framework.Сообщение представляет собой вложенную коллекцию сведений о собрании.Мое желание состоит в том, чтобы повторить все встречи и создать локальные объекты встреч с подробностями, прочитанными в сообщении.Я вижу, чтобы получить список из 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 Ответ

1 голос
/ 22 мая 2011

Структура вашего 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"]);
}

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

...