NSMutableData для NSDictionary, возвращающий ноль

Я пишу программу, которая использует Instagram API, и я сталкиваюсь с некоторыми проблемами с NSMutableData and NSDictionary.

Поскольку мне нужно сделать несколько вызовов API, я решил создать NSMutableData object, добавьте меньшие объекты NSData к нему и затем превратите все это в NSDictionary.

Однако после того, как я сделаю второй звонок NSMutableData appendData NSData, когда я перехожу NSMutableData в NSDictionary, словарь возвращает ноль.

Вот немного моего кода.

NSMutableData *userData = [[NSMutableData alloc]init]
NSData *feed = [NSData dataWithContentsOfURL:[NSURL URLWithString:[NSString   stringWithFormat:@"https://api.instagram.com/v1/users/17636367/media/recent?access_token=%@",accessToken]]];
[userData appendData:feed];
NSData *moarData = [NSData dataWithContentsOfURL:[NSURL URLWithString:[NSString stringWithFormat:@"https://api.instagram.com/v1/users/17636367/media/recent?access_token=%@&max_id=%@",accessToken, maxID]]];
[userData appendData:moarData];
NSDictionary *dictTwo = [NSJSONSerialization JSONObjectWithData:userData options:NSJSONReadingMutableContainers error:nil];
NSLog(@"%@",dictTwo);

dictTwo возвращает ноль. Однако, когда я делаю только один вызов appendData, словарь не пуст.

Благодарю.

2 ответа

Когда вы добавляете два отдельных ответа JSON, они не образуют JSON.

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

Валидатор JSON

Вам нужно проанализировать каждый ответ на запрос отдельно, а затем применить манипулирование этими данными: (например, NSMutableDictionary, NSMutableArray и т. Д.).

Первый вызов вернет массив или словарь. Предполагая, что это словарь, вы получите что-то вроде:

{"some":"data"}

Это можно правильно проанализировать. Когда вы делаете два звонка, вы получаете:

{"some":"data"}{"other":"data"}

Это не допустимый JSON. Вам нужно разобрать каждый элемент отдельно.

Другие вопросы по тегам