字典中的JSON编码字典未使用AFNetworking正确反序列化

时间:2015-10-13 18:49:04

标签: php ios objective-c 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;         username = kenny;     }

仍然是JSON格式。我在这做错了什么?为什么不在NSDictionary中反序列化为NSDictionary?

1 个答案:

答案 0 :(得分:1)

你有一系列类型" User"和#34;结果"包含和字典数组不是简单的字典。试试这段代码:

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