我正在开发一款与Rest网络服务对话的应用。我使用的JSon解析器是SBJson。服务器端的这个Web服务返回一个beanA。这个bean包含一个beanB。当有多个bean时,我从服务器端得到的Json的一部分是这样的:
BeanB =
(
{
key = 12;
name = test2bbb;
},
{
key = 11;
name = test2ttt;
}
);
当只有一个bean时,它看起来像这样:
BeanB =
{
key = 10;
name = test3;
};
通过SBJson解析器,当只有一个BeanB返回时,我得到了一个字典,并在返回多个BeanB时获得了一个数组。我用来接收bean的代码是:
NSArray/NSDictionary *BeanB = [BeanADic objectForKey:@"beanB"];
问题是我无法预测我将从服务器端获得什么。有没有办法测试返回类型?
答案 0 :(得分:5)
这种情况适合检查返回值的类。
id beanB = [beanADic objectForKey:@"tagBeans"];
if ([beanB isKindOfClass:[NSDictionary class]]) {
NSDictionary *beanDic = beanB;
...