Проблемы с получением результатов из сообщения json в цели c с использованием JSON.Framework
Я пытаюсь прочитать сообщение 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 ответ
Структура вашего 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"]);
}
Надеюсь, это поможет.