我试图从json响应中获取一个数字,但我一直收到错误:
objectForKeyedSubscript:]: unrecognized selector sent to instance 0xa00000065646f434
这是我的代码:
NSNumber *FaultCode;
NSArray *detailsFault = json[@"GetResponse"][@"GetResult"][@"Faults"][@"FaultException"];
for (NSDictionary *fault in detailsFault){
NSLog(@"%@", fault[@"Code"]);
FaultCode = fault[@"Code"];
}
它适用于Strings,但是对于其他数据,但是在尝试使用它时它会失败,这只是一个数字。
这是json:
{ "GetResponse":{ "GetResult":{ "Faults":{ "FaultException":{ "Code":1234, "Message":"It has failed" } }, "Response":null } } }
答案 0 :(得分:1)
这是解决方案
NSString *str = @"{ \"GetResponse\":{ \"GetResult\":{ \"Faults\":{ \"FaultException\":{ \"Code\":1234, \"Message\":\"It has failed\" } }, \"Response\":null } } }";
NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
id json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
NSNumber *FaultCode;
NSDictionary *detailsFault = json[@"GetResponse"][@"GetResult"][@"Faults"][@"FaultException"];
NSLog(@"%@", detailsFault[@"Code"]);
FaultCode = detailsFault[@"Code"];
当你得到" FaultException"
时,不需要你已经有词的循环