iOS检查JSON返回是否有Key

时间:2012-07-02 15:16:06

标签: ios crash nsjsonserialization

我正在使用NSJsonSerialization在POST POST之后返回json返回。我要么得到正确的回报,要么得到:

{
"status":"false"
}

我需要在尝试解析之前检查是否收回了我的回复(因为如果我要求的密钥不存在它会崩溃)但是如果我检查

[whatever objectForKey:@"status"] == nil

当它为零时没关系,但是如果它不存在则会崩溃(因为我收回了我的其他回报)

我得到的崩溃是这个,似乎NSJSONSerialzation将NSArray作为NSdictionary返回?:

2012-07-02 11:03:40.426 [9412:10703] -[__NSArrayM objectForKey:]: unrecognized selector sent to instance 0x75f03f0
2012-07-02 11:03:40.429 [9412:10703] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayM objectForKey:]: unrecognized selector sent to instance 0x75f03f0'

我需要找出一种方法来了解我得到的回报,以便我可以采取相应行动。

1 个答案:

答案 0 :(得分:5)

您可以查看whatever变量的类型

if([whatever isKindOfClass:[NSDictionary class]])
    //then check for nil
else
    //Then its not a dictionary then in your case its empty