json NSNumber无法识别的选择器发送到实例

时间:2015-07-20 08:30:10

标签: objective-c json

我试图从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 } } }

1 个答案:

答案 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"

时,不需要你已经有词的循环