的NSDictionary抛出异常不符合逻辑的,我
好day.Im请求某些服务器和挑衅我有一些JSON数据有,所以我试图解析it.Im卡在那里我居然解析的地步。所以,我有方法称为parseJson需要NSDictionry作为参数,所以在这里它的外观的NSDictionary抛出异常不符合逻辑的,我
-(void)parseJson:(NSDictionary*)jsonData{
[jsonData valueForKey:@"email"];
}
,你可以看到这里不多但是当代码到达
[jsonData valueForKey:@"email"];
我越来越exeption我已经开始为之开发iOS从昨天开始,异常对我来说就像下一个怪异。
这个类不是密钥值的密钥对电子邮件顺应编码-“。
所以通过googling我发现什么都没有......并且在每个JSON PARSING教程中都非常多,这一行代码是这样编写的,所以我非常困惑这个异常是什么意思....请帮忙,我在做什么错误?
FULL请求代码
-(void) makeRequest{
// Create the request.
__block NSString *returnResponse = @"hello";
NSURLSessionConfiguration *defaultConfigObject = [NSURLSessionConfiguration defaultSessionConfiguration];
NSURLSession *defaultSession = [NSURLSession sessionWithConfiguration: defaultConfigObject delegate: nil delegateQueue: [NSOperationQueue mainQueue ]];
//Create an URLRequest
NSURL *url = [NSURL URLWithString:@"http://jsonplaceholder.typicode.com/posts"];
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:url];
//Create POST Params and add it to HTTPBody
NSString *params = @"api_key=APIKEY&[email protected].com&password=password";
[urlRequest setHTTPMethod:@"POST"];
[urlRequest setHTTPBody:[params dataUsingEncoding:NSUTF8StringEncoding]];
//Create task
NSURLSessionDataTask * dataTask =[defaultSession dataTaskWithRequest: urlRequest completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if(response!=NULL){
returnResponse =[NSString stringWithFormat:@"%@",response];
}else{
returnResponse = [NSString stringWithFormat:@"%@",error.description];
}
[self hideSpinner];
NSString* jsonString = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
[self parseJson:jsonString];
}];
[dataTask resume];
}
好吧,我已经改变了方法,现在
-(void)parseJson:(NSString*)jsonData{
NSDictionary * dictionary = [[NSDictionary alloc] initWithContentsOfFile:jsonData];
NSLog(@"%@",jsonData);
NSString* mystring = [dictionary valueForKey:@"email"];
NSLog(@"%@",mystring);
}
,这里是输出登录串
2016-01-22 00:25:48.690 testproject[627:83537] {
"api_key": "APIKEY",
"email": "[email protected]",
"password": "password",
"id": 101
}
2016-01-22 00:25:48.690 testproject[627:83537] (null)
时,你可以我得到看到异常问题消失了,但现在我得到NULL值..但你可以看到,只有一行上面我得到了我的儿子与他们所有的关键字符串....所以我完全不知道发生了什么事情。
valueForObject:
方法无关NSDictionary
。它被KVO用来代表键值观察。您可以从NSDictionary
使用[]
或objectForKey:
方法检索对象。下面是例子:
dictionary[@"email"]
//or
[dictionary objectForKey:@"email"]
// EDITED
,而不是与KVO
或字典方法/语法转换NSObject
到NSString
,并试图访问属性,请尝试使用下面的代码来解析NSData的:
NSDictionary *JSONDictionary =[NSJSONSerialization JSONObjectWithData:data options:0 error:nil]
NSString *email = JSONDictionary[@"email"];
您应该能够使用第一版中提到的方法/语法从JSONDictionary
中检索对象答案的答案。
我确实在评论中告诉过这个请阅读上面 –
如果你没有找到我的答案宝贵,请让我知道,我会删除它。我相信,解释您的问题的原因并参考KVO文档将帮助您学习。 –
试图了解问题是,我知道...我试过,但没有为我工作.... –
你试过只是'jsonData [@ “电子邮件”]'? – luk2302
...............即时通讯新到iOS:●只有2天....我真的Android上的专家不是在iOS上:D所以反正生病尝试看到最新那里的一切... –
好吧,当我尝试我得到另一个异常......:/该死的iOS异常描述如此怪异无法理解任何东西.... –