JSON-кодированный словарь в словаре, неправильно десериализованный с помощью AFNetworking

в моем PHP-бэкэнде я возвращаю JSON примерно так:

            $results_array=array();
$stmt->bind_result($IdUser,$username);
while($stmt->fetch()) {
$row = array();
$row["IdUser"]=$IdUser;
$row["username"]=$username;
$results_array[]=$row;

}

$stmt->close();
echo json_encode(array("Response"=>"Login okay", "code"=>200, "results"=>$results_array));

Мой менеджер AFHTTPRequestOperation возвращает responseObject (именованные результаты).

Теперь я хочу получить пользователя:

NSDictionary *user = (NSDictionary *)[results objectForKey:@"results"];
NSLog(@"%@",user);
[[API sharedInstance] setUser:user];

[self.navigationController popViewControllerAnimated:YES];
[self showAlertWithTitle:@"Logged in" andMessage:[NSString stringWithFormat:@"Welcome %@",[user objectForKey:@"username"]]];

Приложение вылетает с "NSInvalidArgumentException', reason: '-[__NSCFArray objectForKey:]: unrecognized selector sent to instance", Я проверяю объект «пользователь» с помощью NSLog, я получаю:

{
IdUser = 49;
имя пользователя = кенни;
}

который все еще в формате JSON. Что я здесь не так делаю? Почему он не десериализуется в NSDictionary в NSDictionary?

0

Решение

У вас есть массив элементов типа «Пользователь» и «результаты» содержит и массив словарей, а не простой словарь. Попробуйте этот код:

NSArray *userList = results[@"results"];
NSDictionary *user = userList.firstObject;
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector