JSONKit неверный аргумент при попытке скопировать

Я анализирую данные JSON с JSONKit как NSMutableDictionary.

NSString *str = [[NSString alloc] initWithData:self.responseData encoding:NSUTF8StringEncoding];

NSMutableDictionary *jsonResponse = [self.responseData objectFromJSONData];

NSMutableDictionary *newData = [[NSMutableDictionary alloc] init];
[newData addEntriesFromDictionary:[jsonResponse mutableCopy]];

Когда я делаю это, я получаю эту ошибку:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSMutableDictionary addEntriesFromDictionary:]: dictionary argument is not an NSDictionary'

Я пытаюсь выяснить, что вызывает эту проблему. Я знаю, что jsonResponse является объектом JKArray из моего другого опыта.

Мне нужна помощь. Благодарю.

1 ответ

Попробуйте следующее:

id object = [self.responseData objectFromJSONData];
NSLog(@"%@", [object class]);

Скорее всего, ваш ответ - это массив, а не словарь.


Если вы действительно хотите преобразовать массив в словарь, вы можете сделать что-то вроде этого, используя собственный ключ:

NSArray *array = [self.responseData objectFromJSONData];
NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithObject:array forKey:@"posts"];

Хотя, возможно, есть несколько лучших вариантов, если бы вы могли показать мне содержимое вашего массива.

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