JSON的NSNumber无法识别的选择发送到实例
我想从一个JSON响应了号码,但我不断收到错误:JSON的NSNumber无法识别的选择发送到实例
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"];
}
它工作正常的字符串,但其他数据,但尝试使用这只是一个数字时失败。
这里是JSON:
{ "GetResponse":{ "GetResult":{ "Faults":{ "FaultException":{ "Code":1234, "Message":"It has failed" } }, "Response":null } } }
下面是解
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”
非常好,谢谢,我已经从其他所有部分删除了循环。我错过了在这一点上使用NSDictionary。感谢您的帮助 – realtek
BTW:在键控路径上使用KVC比键控式下标更容易:'[json valueForKeyPath:@“GetResponse.GetResult.Faults.FaultException”]'。 –
是的KVC是在这种情况下使用的好方法。 –
我不文辞循环请参阅该JSON中的任何数组。此外,您发布的错误消息不完整。 – *foe