Mut*_*Raj 0 json objective-c ios nsjsonserialization
当我尝试从JSON结果中获取结果时。它引发以下异常。
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSTaggedPointerString objectForKey:]: unrecognized selector sent to instance 0xa006449656c6f526'
Run Code Online (Sandbox Code Playgroud)
我的代码。
NSString *responseStringWithEncoded = [[NSString alloc] initWithData: mutableData encoding:NSUTF8StringEncoding];
id jsonObjects = [NSJSONSerialization JSONObjectWithData:
mutableData options:NSJSONReadingMutableContainers error:nil];
for (NSDictionary *dataDict in jsonObjects) {
NSString *firstname = [dataDict objectForKey:@"FirstName"];
}
Run Code Online (Sandbox Code Playgroud)
上面的代码抛出一个NSException。
我的JSON响应如下所示。
{
"IsExternal": 0,
"LoginId": 4,
"EmployeeId": 223,
"FirstName": "GharValueCA",
"RoleId": 4,
"LastName": null,
"Mobile": null,
"AgencyId": 100,
"BranchId": 74
}
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激。
根据JSON的定义,每个JSON包含一个对象(可以是包含其他对象的集合类型)。在您的情况下,您的文本以“ {”开头,所以这是一个字典。一个单一的字典。
因此NSJSONSerialization,当它读取该文件时,会NSDictionary在IsExternal,FirstName等键下给您返回包含值。
但是,您的代码使用for( ... in ... )的是字典(其中,根据NSDictionary文件,会遍历字典中的钥匙,这是字符串),但后来你把这些字符串,如果他们的字典再次。
因此,与其在字典上循环,不如jsonObjects直接在字典中调用类似的-objectForKey:内容直接使用字典。