从NSDictionary解析NSString值将返回nil

时间:2014-01-16 13:47:15

标签: ios objective-c json parsing nsdictionary

我正在尝试将NSDictionary中的值解析为本地数据模型。

以下是字典的内容。

Printing description of userProfile:
{
    "created_at" = "2014-01-16T09:08:03.012Z";
    "first_name" = FirstName;
    id = 74;
    "last_name" = LastName;
    phone = 09876543232;
    photo = "<null>";
    "updated_at" = "2014-01-16T12:40:18.143Z";
    "user_id" = 84;
}

这是我用来解析字符串的内容:

self.profileId = [[userProfile objectForKey:@"id"] intValue];
self.firstName = (NSString*)[userInfo objectForKey:@"first_name"];
self.lastName = (NSString*)[userInfo objectForKey:@"last_name"];
self.phoneNumber = (NSString*)[userInfo objectForKey:@"phone"];

这将在最后三个字段中返回nil。但是,如果我使用此方法来解析数据,它将实际工作。

NSArray*keys=[userProfile allKeys];
self.firstName = [userProfile objectForKey:[keys objectAtIndex:3]];

知道为什么会这样吗?

1 个答案:

答案 0 :(得分:0)

您正在此处访问“userProfile”

self.profileId = [[userProfile objectForKey:@"id"] intValue];

但是在这里访问'userInfo'

self.firstName = (NSString*)[userInfo objectForKey:@"first_name"];
self.lastName = (NSString*)[userInfo objectForKey:@"last_name"];
self.phoneNumber = (NSString*)[userInfo objectForKey:@"phone"];

这是一个错字还是你有一个名为'userInfo'的对象你错误地使用?