我正在使用JSON接收响应,然后尝试将其保存在NSDictionary
中。我在相同应用程序的近12个克隆中使用相同的代码,并且它的工作性能很好。但是,在我的一个应用程序中,我无法做到这一点。
NSDictionary *resultsDictionary = [jsonString JSONValue];
NSString *statusString = [resultsDictionary objectForKey:@"status"];
这是一个简单的两行代码并且工作正常,但我不知道这次会发生什么。可能是我的JSON框架无法正常工作。但我在JSONValue
:
{
"status": "Success",
"data": [
{
"userName": "abc@gmail.com",
"first_name": "ABC",
"last_name": "XYZ",
"gender": "male",
"userid": 1,
"membershipStatus": "Active",
"Saldo": 499.749,
"Avatar": "no_photo.gif",
"uniqueCode": "abc234abc234",
"registerKey": "abc543abc534",
"eMail": "abc@gmail.com"
}
]
}
但是,当我执行它时,我收到了这个错误:
[__NSCFConstantString objectForKey:]: unrecognized selector sent to instance
因为resultDictionay
为空。
为什么resultDictionay
为空?有什么建议吗?
答案 0 :(得分:2)
[jsonString JSONValue];
在项目中设置目标依赖项,请点击此链接
JSONValue是来自SBJson的thridParty图书馆。 Apple有内置的转换框json使用这种方法
使用此
NSDictionary *response = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error];
答案 1 :(得分:0)
试试这段代码:
NSURLResponse *response;
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
strResponse = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
NSLog(@"returnString : %@",strResponse);
NSData *responseData = [strResponse dataUsingEncoding:NSUTF8StringEncoding];
id jsonObject = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&jsonError];
if ([jsonObject isKindOfClass:[NSDictionary class]]) {
tempDict = (NSDictionary *)jsonObject;
}