我正在从服务器解析JSON,但我遇到的问题是,如果用户没有附加到帐户的信用卡,则会返回此信息:
但当他们确实附上信用卡时,它会返回:
我已尝试使用以下代码来确定card_first_name
是否为零,但它崩溃了,因为显然card_first_name
尚不存在。我该如何处理这种情况?请参阅下面的我当前的代码:
if (dict[@"message"][@"card_details"] !=[NSNull null]) {
if (dict[@"message"][@"card_details"][@"card_first_name"]!=nil) /*crashes here */ {
NSLog(@"%@",dict[@"message"][@"card_details"][@"card_first_name"]);
}
if (dict[@"message"][@"card_details"][@"card_last_name"]!=[NSNull null]) {
NSLog(@"%@",dict[@"message"][@"card_details"][@"card_last_name"]);
}
if (dict[@"message"][@"card_details"][@"card_number"]!=[NSNull null]) {
NSLog(@"%@",dict[@"message"][@"card_details"][@"card_number"]);
}
if (dict[@"message"][@"card_details"][@"card_type"]!=[NSNull null]) {
NSLog(@"%@",dict[@"message"][@"card_details"][@"card_type"]);
}
if (dict[@"message"][@"card_details"][@"expiry"]!=[NSNull null]) {
NSLog(@"%@",dict[@"message"][@"card_details"][@"expiry"]);
}
if (dict[@"message"][@"card_details"][@"payment_ref"]!=[NSNull null]) {
NSLog(@"%@",dict[@"message"][@"card_details"][@"payment_ref"]);
}
}
提前致谢,非常感谢任何帮助。
答案 0 :(得分:1)
确定是否存在卡详细信息的密钥计数。
NSUInteger keyCount = [dictionary count];
答案 1 :(得分:0)
首先验证密钥是否存在,然后检查是否有值:
if(dict["message"]key key)
从第一个可能的(预期)键开始,在您的情况下为“message”,然后为所有subseqwent(预期键,子键)。